Arrays 如何访问对象数组中的元素?

Arrays 如何访问对象数组中的元素?,arrays,json,object,javascript-objects,Arrays,Json,Object,Javascript Objects,我在变量数据下有一个JSON响应,形式为[object object]: { "name": "John Johnson", "street": "Oslo West 16", "posts": { "id1": "121331", "id2": "9089085", "id3": "3424234" } } 数据等于[对象]和 data.posts等于{id1:“121331”,“id2:“9089085”,“i

我在变量数据下有一个JSON响应,形式为[object object]:

{
    "name": "John Johnson",
    "street": "Oslo West 16",
    "posts": {
        "id1": "121331",
        "id2": "9089085",
        "id3": "3424234"
    }
}
数据
等于
[对象]

data.posts
等于
{id1:“121331”,“id2:“9089085”,“id3:“3424234”}

如何简单地访问
id3
值,因为它不等于
data.posts.id3
也不等于
data.posts['id3']

JSON.stringify(data)
仅提供
\n
\
中的对象之间的
posts
?这可能是问题所在吗

{
    "name": "John Johnson",
    "street": "Oslo West 16",
    "posts": { \n \"id1\": \"121331\", \n \"id2\": \"9089085\", \n \"id3\": \"3424234\"
    }
}

我怀疑
data.posts
实际上是一个字符串。试一试

JSON.parse(data.posts).id3

您可能应该弄清楚为什么
data.posts
是一个字符串,因为每次您需要从
数据中获取某些内容时,都要执行
JSON.parse(data.posts)
。posts
不是很有效,更不用说双重JSON编码的额外开销了。

为什么您说它不等于这些表达式?你发现了哪一个错误?这是我在提醒他们它们未定义时得到的结果,我在angularjs环境中工作,也在我使用JSON.stringify(数据)时,它给了我对象数组,对象之间有多个反斜杠n\n。。。这正常吗?我怀疑
数据。posts
实际上是一个字符串。
JSON.parse(data.posts).id3提供了什么?您如何在服务器上创建这个JSON?以防万一,您永远不应该“手动”生成它,而应该始终使用本机函数或库(例如,在PHP-
json_encode
)为您生成json。否则,您可能会遇到类似于您在这里看到的问题。