/ / Намагаючись написати функції в JSON, отримайте “Несподіваний маркер” у виклику функції - javascript, json

Намагаючись записати функції в JSON, отримайте "Несподіваний маркер" в межах виклику функції - javascript, json

Я дізнався, що ви можете писати функції у файлах JSON, але я продовжую працювати unexpected token помилки. Ось JSON I, я використовую нижче:

[

{
"thumb": "./templates/scripts/thumbs/01.jpg",
"get": function() {
console.log("mthood");
},
"title": "Mt. Hood Sunset",
"desc": "A relaxing view of Mt. Hood, Oregon."
},
{
"thumb": "./templates/scripts/thumbs/02.jpg",
"get": function() {
console.log("misty");
},
"title": "Misty Rainforest",
"desc": "Leafy and wet at the same time. "
},
{
"thumb": "./templates/scripts/thumbs/03.jpg",
"get": function() {
console.log("clouds");
},
"title": "Clouds",
"desc": "Blue skies and white clouds."
}

]

JSONLint видає мені більш детальну помилку, але я не впевнений, що можу стежити за тим, що тут відбувається:

Error: Parse error on line 5:
...s/01.jpg",       "get": function() {         cons
----------------------^
Expecting "STRING", "NUMBER", "NULL", "TRUE", "FALSE", "{", "[", got "undefined"

Будь-які ідеї?

Відповіді:

2 для відповіді № 1

JSONLint перевіряє JSON в цілому, а не JSON яквизначено JavaScript. Об'єкт JavaScript, хоча вони виглядають як JSON, не є "t JSON. JSON не дозволяє використовувати функції, оскільки JSON - це формат обміну даними, як XML. Ваш код працює, ви можете відкрити консоль розробника в Chrome і протестувати його, але це не дійсний JSON.


3 для відповіді № 2

Ви не можете додавати функції до JSON, лише статичні дані, такі як масиви, рядки, числа або логічні значення.


2 для відповіді № 3

"Я дізнався, що ви можете використовувати функції в файлах JSON".

Це не стандартизовано, де ви це читали? JSON просто приймає 7 примітивних типів:

  • масив
  • логічний
  • ціле число
  • номер
  • нуль
  • об'єкт
  • рядок