繁体   English   中英

Android中复杂的Json解析

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM