Я создаю график (график GANTT), и мне нужно передать плагин JSON файл со всеми значениями для построения графика. Пример json для плагина таков:
source: [{
name: "Example",
desc: "Lorem ipsum dolor sit amet.",
values: [{
to: "/Date(1328832000000)/",
from: "/Date(1333411200000)/",
desc: "Something",
label: "Example Value",
customClass: "ganttRed",
dataObj: foo.bar[i]
}]
},
{
name: "Example1",
desc: "Stackoverflow rulez.",
values: [{
to: "/Date(1328832000000)/",
from: "/Date(1333411200000)/",
desc: "Something else",
label: "Example Value 1",
customClass: "ganttGreen",
dataObj: foo.bar[i]
}]
}]
Я добавил элемент Example1, а затем попытался проверить с помощью JSONLint, чтобы убедиться, что я строю массив правильно. К моему удивлению, валидатор вышел, сказав, что синтаксис недействителен после первого [{
(очевидно, я не передал source:
в валидатор). Сообщение об ошибке, которое я получаю, говорит:
Error: Parse error on line 1: [{ name: "Example", de --^ Expecting 'STRING', '}', got 'undefined'
Что я делаю неправильно? Почему валидатор поднимает эту ошибку? Json был написан в формате обычного txt с notepad++, поэтому я не могу думать о скрытом тексте в белых пространствах
оберните ключи в двойные кавычки. это будет работать
"source":[
{
"name": "Example",
"desc": "Lorem ipsum dolor sit amet.",
"values": [{
"to": "/Date(1328832000000)/",
"from": "/Date(1333411200000)/",
"desc": "Something",
"label": "Example Value",
"customClass": "ganttRed",
"dataObj": foo.bar[i]
}]
},
{
"name": "Example1",
"desc": "Stackoverflow rulez.",
"values": [{
"to": "/Date(1328832000000)/",
"from": "/Date(1333411200000)/",
"desc": "Something else",
"label": "Example Value 1",
"customClass": "ganttGreen",
"dataObj": foo.bar[i]
}]
}
]
см. ниже скриншот для действительного json
Чтобы передать данные в качестве допустимого JSONLint, оберните все ключи в json-объекте в виде строки.
действительный json для вашего ввода
"source": [{
"name": "Example",
"desc": "Lorem ipsum dolor sit amet.",
"values": [{
"to": "/Date(1328832000000)/",
"from": "/Date(1333411200000)/",
"desc": "Something",
"label": "Example Value",
"customClass": "ganttRed",
"dataObj": foo.bar[i]
}]
},
{
"name": "Example1",
"desc": "Stackoverflow rulez.",
"values": [{
"to": "/Date(1328832000000)/",
"from": "/Date(1333411200000)/",
"desc": "Something else",
"label": "Example Value 1",
"customClass": "ganttGreen",
"dataObj": foo.bar[i]
}]
}]