复杂的json格式数据转成Java对象

    "payCnt":3,

    "payInfo":[

        {

            "payInfoMain":{

                "itemCnt":1,

                "tranUser":"",

                "payer":"宁德"

            },

            "eBillNo":"2.0120601E+17",

            "payInfoItem":[

                {

                    "chrgName":"初级网络工程师报名费",

                    "msrUint":"元/科",

                    "chrgCode":"KA460001"

                }

            ]

        }

    ]

}

 

json中嵌套了String、Map、List类型,用JSONObject来转换:

  Map obj = (Map)JSONObject.fromObject(resultMsg);//resultMsg为json串,转成Map对象
  System.out.println(obj.get("payCnt"));//获取payCnt数目
  List list = (List)obj.get("payInfo");//获取payInfo信息(List类型)
  Map t = (Map)list.get(0);//获取第一行记录,Map类型
  Map mainMap = (Map)t.get("payInfoMain");//获取payInfo主要信息,Map类型
  String user = (String)mainMap.get("payer");//取出payer


注意:1、resultMsg一定是JSON对象,如果是字符串则取法完成转换
      2、Map obj = (Map)JSONObject.fromObject(resultMsg);使用的json-lib.jar类库中的方法

2、若resultMsg是json字符串,则借用谷歌公司的Gson的JSONUtil类中的jsonToMap(String jsonstr)方法将字符串转换为Map对象
<1>JSONUtil.java中的将json格式转换成map对象的源码(使用时引入gson.jar类库)
public class JSONUtil{
 
    private static Gson gson=null;
    static{
        if(gson==null){
            gson=new Gson();
        }
    }
    private JSONUtil(){}
    /**
     * 将json格式转换成map对象
     * @param jsonStr
     * @return
     */
    public static Map<?,?> jsonToMap(String jsonStr){
        Map<?,?> objMap=null;
        if(gson!=null){
            java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<Map<?,?>>(){}.getType();
            objMap=gson.fromJson(jsonStr, type);
        }
        return objMap;
    }
}

例如:将json格式转换成map对象举例:
      Map mapObj = JSONUtil.jsonToMap(response);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值