json解析

String aaa="{\"message\": [\"查询成功\"],\"dataInfo\": [[ { \"productid\": \"134129\",\"orderalready_1\": \"1\",\"productname\": \"联通30元直充\"},{ \"productid1\": \"134129\",\"orderalready_1\": \"1\",\"productname\": \"联通30元直充\"},{ \"productid2\": \"134129\",\"orderalready_1\": \"1\",\"productname\": \"联通30元直充\"}]]}";
System.out.println(aaa);
//最外层的大括号
JSONObject data1 =new JSONObject(aaa); 
//两种方式,message是一个数组
JSONArray result = data1.getJSONArray("message");
JSONArray result2 = (JSONArray) data1.get("message");
//message是一个数组,取它里面的第一个值:[查询成功]
System.out.println("---------"+result.get(0));
//两种方式,取dataInfo的外层数组
JSONArray jsonarr=data1.getJSONArray("dataInfo");
System.out.println("jsonarr"+jsonarr);
//里面的数组,外面数组定义的是jsonarr的第一个值,就是里面的数组
JSONArray datearr=(JSONArray) jsonarr.get(0);
System.out.println("datearr"+datearr);
//在这里又成了一个JSONObject
JSONObject dataObj=(JSONObject) datearr.get(datearr.length()-1);
System.out.println("dataObj"+dataObj);
//取JSONObject值的两种方式
String projectid=dataObj.get("productid2").toString();
String projectid2=dataObj.getString("productid2");
System.out.println(projectid);

String orderalready_1=dataObj.getString("orderalready_1");
System.out.println(orderalready_1);

String productname=dataObj.getString("productname");

System.out.println(productname);





另外:

 if(Code.equals("0")){
           //请求成功
           JSONArray reportsArray=jsonObj.getJSONArray("Reports");
           if(reportsArray.length()==0){
              state="0";
              billmsg+="查无此单";
           }
           else{
              String flag="false";
              for(int i=0;i<reportsArray.length();i++){
                   JSONObject reportObj=(JSONObject)reportsArray.get(reportsArray.length()-1);
                   String Status=reportObj.get("Status").toString();
                   if("4".equals(Status)){
                       sendupdatestate(orderId,"查单结果:充值成功","999","1");
                        
                   }else if("5".equals(Status)){
  sendupdatestate(orderId,"查单结果:充值失败","999","8");
  }
              }
       
           }
        }
    System.out.println(state+billmsg);



外:

 String param ="{\"partyId\":\"1209992\",\"data\":{\"type\":3,\"size\":1,\"messageList\":[{\"state\":\"0\",\"mobiles\":\"SASADSAS221SDAA\",\"userPackage\":\"000DADSASD00B10\",\"recvTime\":\"20160302150711\",\"sendID\":\"DA8887DADADA\",\"statedes\":\"订购成功\",\"requestid\":\"sadasaaaaada\"}]},\"time\":\"20150804111252936\",\"sign\":\"a75717da5420447a47c16a2fe1d622ba\"}";
       System.out.println("------"+param);
       JSONObject json=new JSONObject(param);
       String partyId=json.getString("partyId");
       System.out.println("------"+partyId);
       String time=json.get("time").toString();
       String data=json.get("data").toString();
       JSONObject jsona=new JSONObject(data);
       JSONArray result = jsona.getJSONArray("messageList");
       System.out.println("------"+result);
       //JSONObject dataObj=(JSONObject) result.get(result.length()-1);
       //若是多笔回调则用for循环遍历一下
       for(int i=0;i<result.length();i++){
        JSONObject dataObj=(JSONObject) result.get(i);
        String state=dataObj.get("state").toString();
        //每次都去拿到我们的订单号
        String requestid=dataObj.get("requestid").toString();
       }



外:

JSONObject jsonObj=new JSONObject(data);

String data=jsonObj.get("data").toString();

上面这两句就等于一句

JSONObject jsonObj=(JSONObject)json.get("data");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值