我有一个这种格式的JSON,带有电子邮件的动态密钥
{
"id":johnsmith@gmail.com",
"contact":[
{
"uid":0,
"name":"johnsmith",
"email":[
{
"home":"johnsmith0@gmail.com"
},
{
"work":"johnsmith1@gmail.com"
}
],
"mobile":[
{
"cc":"+60",
"mobile":"00000000"
},
{
"cc":"+60",
"mobile":"00000001"
}
]
}
]
}
我试过
Iterator it = contactArray.getJSONObject(i)
.getJSONObject("email").keys();
但是我收到了错误
org.json.JSONException: JSONObject["email"] is not a JSONObject.
但这样做有效,但没有方法可以从JSONArray获取密钥。
JSONArray emailArray = contactArray.getJSONObject(i)
.getJSONArray("email");
如何处理动态密钥?感谢。
答案 0 :(得分:1)
数组没有键,它们有元素。这应该基于java集合类型,使用循环结构来测试它:
JSONArray emailArray = contactArray.getJSONObject(i).getJSONArray("email");
for(Object o: emailArray){
System.out.println(o);
}
如果emailArray为空,则不会输出任何内容,如果其中包含元素,则会输出该值。