如何在javascript中创建这样的JSON数组

时间:2014-10-14 15:23:34

标签: javascript json

创建如下所示的数组的最佳方法是什么:

 [
        {
            "id":"1",
            "value": true
        },
        {
            "id":"3",
            "value": false
        },
        {
            "id":"5",
            "value": true
        },
        {
            "id":"6",
            "value": false
        },
        {
            "id":"9",
            "value": true
        },
    ]

我的代码:

                //add to array
                thing = {
                    "id" : 1,
                    "value" : "true"

                };

                thingArray.push(thing);

当我将输出放在JSON验证器中时,似乎没有正确格式化。

3 个答案:

答案 0 :(得分:1)

正如我进一步评论的那样,请确保您在某个时候实际上将其序列化为JSON。在您的代码示例中,您只是使用JavaScript对象,这与JSON不同。这是一个例子:

// start with a regular JavaScript array
var array = [];


// push some regular JavaScript objects to it
array.push({
    id: 1,
    value: true
});

array.push({
    id: 2,
    value: false
});

// serialize your JavaScript array into actual JSON
var json = JSON.stringify(array);

// do whatever you want with it...
console.log(json);

这是JSBin example

答案 1 :(得分:0)

你的代码很好。这里有一些代码可以帮助您入门:

var arr = [];
arr.push({"id": 1, "value": "true"});
arr.push({"id": 2, "value": "false"});

console.dir(arr);

http://jsfiddle.net/gg014w0h/

您可以运行该小提琴,然后检查您的控制台输出。你会非常清楚地看到数组的内容。

答案 2 :(得分:0)

JSON验证器不喜欢数组的尾随逗号。 console.log(array)console.log(JSON.stringify(array))之间存在差异。你可能想要使用后者。

另请注意,JSON中允许使用布尔值:

"value": "true",
"value": true

这些都是有效的,它们意味着不同的东西。