fisrt JSON
{value:[{"sk_service":"1","hour":"0","sum(transaction)":"1636"}]}
第二个JSON
{value:[{"sk_service":"1","month":"04","sum(transaction)":"19572"}]}
然后我这样做是为了知道我的json
的属性String a= JSONArray.getJSONObject(0).names().getString(0); //0
String b= JSONArray.getJSONObject(0).names().getString(1); //1
结果:
第一个json
a = sum(transaction) //index 0.
b = hour //index 1.
第二个json
a = month //index 0.
b = sum(transaction) //index 1.
为什么第一个和第二个json之间的结果不一致?
答案 0 :(得分:0)
JSON:JavaScript Object Notation - 您将其视为对象,您可以显式访问属性:
这应该可以解决问题:
var data = new Array();
for(var index = 0; index < JSONArray.length; index++){
data.push(eval("(" + JSONArray.getJSONObject(index) + ")"));
}
现在你有一个数组可以让你明确地检索数据:
data[0].value["sk_service"] will give you "1"
data[1].value["month"] will give you "04"
data[0].value["sum(transaction)"] will give you "1636"
我建议你重新考虑你的JSON:
第二个JSON
{value:[{"sk_service":"1","period":"month","duration":"4","transactionSum":"19572"}]}
引入句点和持续时间属性将在以后简化您的代码
将sum(transaction)
重命名为transactionSum
可以避免以后混淆。
答案 1 :(得分:0)
你可能只是混淆了。
String a= JSONArray.getJSONObject(0).names().getString(0);
String b= JSONArray.getJSONObject(1).names().getString(0);
getJSONObject()
返回JSON对象,在您的代码中,您似乎使用相同的JSON对象。
getString()
返回与该索引匹配的字符串。假设您想要每个JSON中的第一个元素,在两种情况下都不会指定0