Я дізнався, що ви можете писати функції у файлах 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 для відповіді № 1JSONLint перевіряє JSON в цілому, а не JSON яквизначено JavaScript. Об'єкт JavaScript, хоча вони виглядають як JSON, не є "t JSON. JSON не дозволяє використовувати функції, оскільки JSON - це формат обміну даними, як XML. Ваш код працює, ви можете відкрити консоль розробника в Chrome і протестувати його, але це не дійсний JSON.
3 для відповіді № 2
Ви не можете додавати функції до JSON, лише статичні дані, такі як масиви, рядки, числа або логічні значення.
2 для відповіді № 3
"Я дізнався, що ви можете використовувати функції в файлах JSON".
Це не стандартизовано, де ви це читали? JSON просто приймає 7 примітивних типів:
- масив
- логічний
- ціле число
- номер
- нуль
- об'єкт
- рядок