[英]complex Json Parsing in Android
在我的应用程序中,我想解析格式为json的响应
{"quote":[{"orderId":"3209926"},{"totalpages":1}]}
下面是我做过的代码,但是问题是如何获取“ totalpages”值?
try {
JSONObject jObject = new JSONObject(result);
JSONArray jArray = jObject.getJSONArray("quote");
for (int i = 0; i < jArray.length(); i++)
{
JSONObject offerObject = jArray.getJSONObject(i);
current.orderId = offerObject.getInt("orderId");
使用时显示错误
current.totalpage= offerObject.getInt("totalpages");
有人知道如何解析吗?
请注意,如果对象不包含请求的键,则与JSONObject
其他get函数一样, getInt()
会抛出JSONException
。 因此,在请求密钥之前,应使用hasKey()
确定对象是否包含密钥。
例如,在for循环内,您可以执行以下操作:
JSONObject offerObject = jArray.getJSONObject(i);
if(offerObject.has("orderId") {
current.orderId = offerObject.getInt("orderId");
}
if(offerObject.has("totalpages") {
current.totalpage= offerObject.getInt("totalpages");
}
您还可以在循环后添加标志和检查,以确保JSON数据中同时存在orderId和totalpages。
我不知道为什么您的json具有这种结构。 但是,如果要解析它,则必须使用has函数执行类似以下的操作。
for (int i = 0; i < jArray.length(); i++) {
JSONObject offerObject = jArray.getJSONObject(i);
if(offerObject.has("orderId")) {
current.orderId = offerObject.getInt("orderId");
} else if(offerObject.has("totalpages")) {
current.totalpage= offerObject.getInt("totalpages");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.