我从api那里得到json数据:
{
"function": "getCategoryItem",
"version": "0.1",
"returnCode": true,
"errorCode": 0,
"errorMessage": "",
"result": {
"_ITEM_": [
{
"itemId": 10000,
"itemName": "Item Test\u00fc\u00e7\u011e\u00d6",
"itemImageURL": "test.png",
"itemDescription": "21testDESC",
"itemPrice": 762
},
{
"itemId": 10001,
"itemName": "Item Test V2",
"itemImageURL": "tiger.png",
"itemDescription": "asfdjKDEWSC",
"itemPrice": 552
},
],
"_NAVIGATION_": [
{
"itemCount": 21,
"totalCount": 21,
"currentPage": 1,
"navigationSize": 10,
"pageSize": 10
}
]
}
}

但我无法访问 ITEM - > itemId或 NAVIGATION - > currentPage如何使用JavaScript访问 ITEM 和 NAVIGATION 内部?谢谢你的帮助。
答案 0 :(得分:0)
首先,问题中的JSON(如果它真的意味着 JSON ,而不仅仅是对象文字)是无效的:它在_ITEM_
中的第一个条目之后有一个尾随逗号,这在JavaScript中有效,但在JSON中无效。
一旦修复,并假设在某个阶段你解析 JSON,那时它不再是JSON,它是一个具有属性的对象(引用其他对象等)。在您的情况下,如果data
引用整个解析结果,则您可以像这样访问_ITEM_
:
console.log(data.result._ITEM_[0].itemId); // 10000
实例:
var json =
'{\n'+
' "function": "getCategoryItem",\n' +
' "version": "0.1",\n' +
' "returnCode": true,\n' +
' "errorCode": 0,\n' +
' "errorMessage": "",\n' +
' "result": {\n' +
' "_ITEM_": [\n' +
' {\n' +
' "itemId": 10000,\n' +
' "itemName": "Item Test\u00fc\u00e7\u011e\u00d6",\n' +
' "itemImageURL": "test.png",\n' +
' "itemDescription": "21testDESC",\n' +
' "itemPrice": 762\n' +
' },\n' +
' {\n' +
' "itemId": 10001,\n' +
' "itemName": "Item Test V2",\n' +
' "itemImageURL": "tiger.png",\n' +
' "itemDescription": "asfdjKDEWSC",\n' +
' "itemPrice": 552\n' +
' }\n' +
// ^-- This is where the invalid comma was
' ],\n' +
' "_NAVIGATION_": [\n' +
' {\n' +
' "itemCount": 21,\n' +
' "totalCount": 21,\n' +
' "currentPage": 1,\n' +
' "navigationSize": 10,\n' +
' "pageSize": 10\n' +
' }\n' +
' ]\n' +
' }\n' +
'}';
var data = JSON.parse(json);
console.log(data.result._ITEM_[0].itemId); // 10000