Java 如何从嵌套的JSON响应中检索信息?
我正在检索一个JSON响应,除了一个部分之外没有任何问题。有些项是嵌套的JSONObject:Java 如何从嵌套的JSON响应中检索信息?,java,android,Java,Android,我正在检索一个JSON响应,除了一个部分之外没有任何问题。有些项是嵌套的JSONObject: { "response": { "venues": [ { "id": "42829c80f964a5205f221fe3", "name": "AmericanExpressTower", "contact": { "phone": "2126405130",
{
"response": {
"venues": [
{
"id": "42829c80f964a5205f221fe3",
"name": "AmericanExpressTower",
"contact": {
"phone": "2126405130",
"formattedPhone": "(212)640-5130",
"twitter": "americanexpress"
},
"location": {
"address": "200VeseySt",
"crossStreet": "WestSt",
"lat": 40.713618978735,
"lng": -74.01408649911748,
"distance": 1926,
"postalCode": "10285",
"city": "NewYork",
"state": "NY",
"country": "UnitedStates"
}
}
]
}
}
如何访问联系人对象(如“formattedPhone”)中的一个项目
我可以访问每个项目的“名称”:
JSONObject json = new JSONObject(result);
JSONArray venues = json.getJSONObject("response")
.getJSONArray("venues");
input.close();
int vLength = venues.length();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < vLength; i++) {
builder.append("Location: ");
builder.append(venues.getJSONObject(i)
.getString("name").toString());
builder.append("\n");
}
JSONObject json=新的JSONObject(结果);
JSONArray=json.getJSONObject(“响应”)
.getJSONArray(“场馆”);
input.close();
int vLength=场地长度();
StringBuilder=新的StringBuilder();
对于(int i=0;i
以下是我解决问题的方法,因为在某些情况下不存在联系人:
try {
JSONObject contacts = new JSONObject(venues.getJSONObject(i).getString("contact"));
builder.append("Phone: ");
builder.append(contacts.get("formattedPhone"));
builder.append("\n");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我还应该添加这样的操作:jsonobjectcontacts=newjsonobject(viouses.getJSONObject(I).getString(“contact”);将从上面拉取整个对象.so contacts.getString(“formattedPhone”),我试过了,它说formattedPhone没有值,而不是I,最初只使用一个索引进行测试,别忘了先验证你的json OK,我试过使用0而不是I,非常感谢。我认为问题是,如果接触不存在,它会产生错误,而在其中一个对象中不存在接触。。。