java解析多级Json中的数组


import org.json.JSONArray;
import org.json.JSONObject;

public class Test {

    public static void main(String[] args) throws Exception{
        //原始String类型json
        String aaa = "{\"code\":\"\",\"errorCode\":\"200\",\"errorContext\":null,\"message\":\"\\r\\n\",\"resultObject\":
        {\"listDataMap\":[{\"successRuleCount\":22,\"failRuleCount\":0,\"checkSuccess\":\"true\",\"checkUrl\":\"http://www.baidu.com\"},{}]},\"success\":true}";

         //先转成JSONObject,取出第一层resultObject中的内容
        JSONObject resultObject =  (JSONObject)getValue(new JSONObject(aaa),"resultObject");

      //这里因为listDataMap中是数组的形式,所以要转成JSONArray来取
        JSONArray listDataMap =  (JSONArray)getValue(resultObject,"listDataMap");

        //取出数组中第一个值里面所需要的key对应的value
        System.out.println(getValue(listDataMap.getJSONObject(0),"checkSuccess"));
        System.out.println(getValue(listDataMap.getJSONObject(0),"checkUrl"));

    }

    public static Object getValue(JSONObject json, String key){
        if(json ==null){
            return null;
        }else {
            if(json.isNull(key)){
                return null;
            }else {
                return json.get(key);
            }
        }
    }
}

 方法二

解析普通json

result
{
    "success":"true",
    "returnAddress":"123"
}


   JSONObject jsonObject=JSON.parseObject(result);      //转换成object
 
   jsonObject.getString("returnAddress")    //获取object中returnAddress字段;   

result
{
    "success":"true",
    "data":{
        "shop_uid":"123"
    }
}
 

JSONObject shop_user =JSON.parseObject(result);
 
JSON.parseObject(shop_user.getString("data")).getString("shop_uid")

 

解析数组型json

result
{
    "success":"true",
    "data":[{
        "shop_uid":"123"
    },
    {
        "shop_name":"张三"
    }]
}
 

JSONArray detail = JSON.parseArray(result);
for (int i=0; i<detail.size();i++){
    if(detail.get(i)!=null||!detail.get(i).equals("")){
        JSONArray detailChild =detail.getJSONArray(i);
        if(detailChild.getInteger(1)>Integer.valueOf(ship.get("shiptime").toString())){
            ship.put("shiptime",detailChild.getInteger(1));
            ship.put("desc",detailChild.getString(0));
        }
    }
}

JSON转javaBean

JSONobject=>javaBean

JSONObject contentChild = contentsArray.getJSONObject(i);
QCCustomerScore.CustomerCore customerCore = JSON
        .toJavaObject(contentChild, QCCustomerScore.CustomerCore.class);

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM