JSON.parse在JSON字符串数组上没有按预期方式执行

时间:2012-11-28 13:51:00

标签: javascript json

我是javascript的新手,所以要了解这些东西是如何运作的。

我有一个类似于["{\"name\":\"name\"}","{\"name\":\"Rick\"}"]

的字符串

如果我JSON.parse()不应该返回具有name属性的对象数组?

我得到的是数组中的2个元素,但它们只是JSON字符串。它们不是具有属性名称的对象。我错过了什么?

[编辑] 我在对象上调用stringify(),然后将其传递给数组,而不是仅将对象传递给数组。然后我stringify()数组。我正在对stringify进行字符串化,这会导致它放入转义字符:)

3 个答案:

答案 0 :(得分:6)

  

如果我JSON.parse()不应该返回一个具有name属性的对象数组?

不,看起来JSON定义了一个包含两个字符串的数组。

这是包含两个字符串的数组的JSON:

[
    "{\"name\":\"name\"}",
    "{\"name\":\"Rick\"}"
]

在JavaScript字符串文字形式中,即'["{\"name\":\"name\"}","{\"name\":\"Rick\"}"]'

这是包含两个对象的数组的JSON:

[
    {
        "name": "name"
    },
    {
        "name": "Rick"
    }
]

在JavaScript字符串文字形式中,这将是'[{"name":"name"},{"name":"Rick"}]'

答案 1 :(得分:2)

我猜它的sholuld来了:

"[{\"name\":\"name\"},{\"name\":\"Rick\"}]"

答案 2 :(得分:0)

如果你丢失了根元素周围的(转义)引号,你可能得到你想要的。

E.g。

之类的东西
"[{"name":"name"},{"name":"Rick"}]"