4

我是 javascript 的新手,所以学习其中一些东西是如何工作的。

我有一个看起来像这样的字符串:["{\"name\":\"name\"}","{\"name\":\"Rick\"}"]

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

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

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

4

3 回答 3

6

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

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

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

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

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

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

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

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

于 2012-11-28T13:53:07.527 回答
2

我想它应该是:

"[{\"name\":\"name\"},{\"name\":\"Rick\"}]"
于 2012-11-28T13:57:38.707 回答
0

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

例如像

"[{"name":"name"},{"name":"Rick"}]"
于 2012-11-28T13:54:51.960 回答