Java解析Json格式数据的小总结

注:以下的总结均是引入的jar包fastjson,例子:

String test="{\"response\":{\"api\":\"2.1\",\"args\":[{\"tit\":\"test001\",\"val\":\"测试1\"},{\"tit\":\"test002\",\"val\":\"测试2\"}]}}";

1.将String类型转换为JsonObject对象

JsonObject object=JSON.parseObject("test");

获取Json数据内容,即{\"api\":\"2.1\",\"args\":[{\"tit\":\"test001\",\"val\":\"测试1\"},{\"tit\":\"test002\",\"val\":\"测试2\"}]}

JSONObject json = (JSONObject) object.get("respon");

2.最简单的解析是json格式也为最简单的key-value形式

此时只需json.getString(key值),如获取api,只需json.getString(api);

3.但是很多json都是json数组和json对象一起的,而且存在很多key值,此时我们需要解析时与实体类对应,因为会去填充相同名称的属性。注:在与实体类对应时,如果实体类中有的属性而Json字符串没有的,会默认为null,如果Json字符串中有而实体类中没有的,不做处理。

①Json对象的:使用JSONObject.parseObject

如首先创建一个实体类apiModel,内含属性api,首先获取api的值:

String apiStr=json.getString("api");

与实体类对应:

apiModel a=JsonObject.parseObject(apiStr,apiModel.Class);

②Json数组的:使用JSONArray.parseArray(返回List)

如首先创建一个实体类argsModel,内含属性获取JsonArray数组

JSONArray specialCateArray = json.getJSONArray("args");

与实体类对应:

List<argsModel> argsList=new ArrayList<argsModel>();
argsList=JSONArray.parseArray(specialCateArray.toJSONString(),argsModel.class);
4.还有一种情况是,key和value值比较多,我们只想按照key-value的方式解析存表,或是不知道key值的情况,也就是单独获取json字符串中的key值或value值

比如以上例子仅解析为args=[{"val":"测试1","tit":"test001"},{"val":"测试2","tit":"test002"}],api=2.1

Set<Entry<String, Object>> entrySet=json.entrySet();
        for(Entry<String, Object> entry:entrySet){
         System.out.print(entry.getKey()+"="+json.getString(entry.getKey())+"\n");
        }
注:此文章是本人学习的一点小笔记和总结,若发现有问题欢迎指出,谢谢~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值