Java解析Json格式数据的小总结
2018-03-28 16:51
369 查看
注:以下的总结均是引入的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.1Set<Entry<String, Object>> entrySet=json.entrySet();
for(Entry<String, Object> entry:entrySet){
System.out.print(entry.getKey()+"="+json.getString(entry.getKey())+"\n");
}注:此文章是本人学习的一点小笔记和总结,若发现有问题欢迎指出,谢谢~
此时只需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.1Set<Entry<String, Object>> entrySet=json.entrySet();
for(Entry<String, Object> entry:entrySet){
System.out.print(entry.getKey()+"="+json.getString(entry.getKey())+"\n");
}注:此文章是本人学习的一点小笔记和总结,若发现有问题欢迎指出,谢谢~
相关文章推荐
- java 解析 json格式数据。。。
- Java解析JSON格式数据一
- 通过java代码对json格式数据进行解析
- netcdf数据nc格式数据java解析总结(一)使用excel4netcdf打开Nc数据
- Java解析JSON格式数据二
- Java解析JSON格式的数据
- java 解析json格式数据
- java后台访问url 解析json格式数据
- JAVA解析和封装JSON格式数据
- Android开发中经常遇到的一些不同Json格式数据的解析的总结
- java读取文件内容,解析Json格式数据
- java解析json格式的数据,其中json是List和Map格式
- java 解析json格式数据
- java 解析json格式数据
- 很好用的Google 开源项目Gson在java中解析和创建json格式的数据
- java中解析json格式数据
- JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson
- java 解析Json格式数据
- 很好用的Google 开源项目Gson在java中解析和创建json格式的数据
- java 解析json格式数据(转)