Javascript 具有多个值的json对象的正确结构

Javascript 具有多个值的json对象的正确结构,javascript,json,Javascript,Json,我正在创建一个图形(甘特图),我需要向插件传递一个JSON文件,其中包含构建图形所需的所有值。 插件的json示例如下: source: [{ name: "Example", desc: "Lorem ipsum dolor sit amet.", values: [{ to: "/Date(1328832000000)/", from: "/Date(1333411200000)/", desc: "Something"

我正在创建一个图形(甘特图),我需要向插件传递一个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进行验证,以确保以正确的方式构建阵列。令我惊讶的是,验证器出来说在第一个
[{
之后语法无效(显然我没有将
源代码:
传递给验证器)。 我收到的错误消息是:


我做错了什么?为什么验证器会引发这个错误?Json是用notepad++以纯txt格式编写的,所以我想不出在空白处隐藏的文本来将数据传递为有效的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]
    }]
}]

把你的键用双引号括起来,这样就行了

"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,请参见下面的屏幕截图


因为这不是有效的JSON,所以它是一个对象数组的JS代码。你需要在JSONLint中对属性名称进行双引号,以便正确解析。你是对的!很明显,但没有注意到。插件作者指的是JSON,我没有注意到它不是一开始就存在的注意:@CodeSpirit是的,我在这里盖上盖子
"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]
        }]
    }
]