以下是我正在使用的内容。
jsonobject = {
"products": [
{
"ProductABC-001": {
"attributes": [
{
"color": "blue"
},
{
"size": "large"
}
]
}
}
]
};
jsonobject.products [0] .attributes [0]
答案 0 :(得分:4)
这里根本没有JSON。你拥有的是一个Javascript对象文字,用于创建一个Javascript对象。
JSON是数据的文本表示。 JSON语法是Javascript对象和数组文字语法的子集。您在=
和;
之间的对象文字恰好遵循更严格的JSON语法,因此您可以将这部分源代码用作JSON。
因为您从jsonobject.products[0]
获得的对象没有任何attributes
属性。
您将使用jsonobject.products[0]['ProductABC-001'].attributes[0]
,它返回对象{ "color": "blue" }
从我所看到的,你需要的只是一个产品对象数组,它有一个名字和一个带有属性的对象:
var products = [
{
name: "ProductABC-001",
attributes: {
color: "blue",
size: "large"
}
}
];
答案 1 :(得分:0)
1/2。不,不是=
标志不是JSON spec的一部分。您必须删除jsonobject =
位,以便"纯" JSON。 (您可以在此处验证任何JSON:http://jsonlint.com)
对于3,@ davin-tryon是正确的,你错过了["ProductABC-001"]
所在的"attributes"
位。试试这个:
jsonobject.products[0]["ProductABC-001"].attributes[0]