我有JSON文本,如下所示:
{
"ok": true,
"totalPages": 256,
"arReports": {
"r2807328": {
"marchReportId": "2807328",
"reportUnixTime": "1332742728",
"marchTypeState": "1"
},
"r2804256": {
"marchReportId": "2804256",
"reportUnixTime": "1332722319",
"marchType": "4",
"marchTypeState": "1"
}
},
"arOtherNames": {
"a455": "JL",
"a44": "CCCP",
"a796": "Waffenstudenten"
}
}
然后我做了:
var objGW = eval('(' + s + ')');
var d = new sbt.JsonNavigator(objGW);
如何获取报告ID列表(r2807328等),然后获取相应的marchReportId?
我尝试过d.stringValues('arReports')和d.stringValues('arReports / marchId'),但是我没有得到文本或数组的值?我做错了什么?
答案 0 :(得分:0)
我相信你错过了使代码成为对象的方括号 看这里例如 - > http://www.w3schools.com/json/default.asp
答案 1 :(得分:0)
它通过验证器,所以我不认为它是无效的json。您可以将arreports的属性作为关联数组进行访问。在客户端使用json时,您可以执行以下操作以按键检索第一个元素
d.arReports["r2807328"]
这将返回具有给定键的arReports对象。如果你想使用一个属性,你应该使用
d.arReports["r2807328"].marchTypeStatus
如果您想使用jsonnavigator类在服务器端执行此操作,可以使用以下语法
var d = new sbt.JsonNavigator(json);
d.stringValues('arReports/r2807328')
或
var d = new sbt.JsonNavigator(json);
d.stringValues('arReports/r2807328/marchTypeStatus')
进一步参考以下链接