关于Java中Json的各种处理

作者:alex_fung 时间:2022-06-12 02:37:48 

Java Json的各种处理

一、net.sf.json

1、Json转Map

JSONObject jsonObject = JSONObject.fromObject(jsonStr);
Map<String,Object> map = new HashMap<>();
map.put("code",jsonObject .getInt("code"));

2、Json转实体

JSONObject jsonObject = JSONObject.fromObject(jsonStr);
ArticleForm articleForm = (ArticleForm) JSONObject.toBean(jsonObject , ArticleForm.class);

如果实体中带有List字段,需要指定泛型

Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("keywords", String.class);
ArticleForm articleForm = (ArticleForm) JSONObject.toBean(data.getJSONObject(i), ArticleForm.class,classMap);

3、Json转集合

List<ArticleForm> list = new ArrayList<>();
JSONArray data = jsonObject.getJSONArray("data");
if (errorCode == 0 && data != null && !data.isEmpty()) {
?? ?for (int i = 0; i < data.size(); i++) {
?? ??? ?Map<String, Class> classMap = new HashMap<String, Class>();
?? ??? ?classMap.put("keywords", String.class);
?? ??? ?ArticleForm articleForm = (ArticleForm) JSONObject.toBean(data.getJSONObject(i), ArticleForm.class,classMap);
?? ??? ?list.add(articleForm);
?? ?}
}

另外一种:

List<ArticleForm> list = new ArrayList<>();
JSONArray data = jsonObject.getJSONArray("data");
if (errorCode == 0 && data != null && !data.isEmpty()) {
?? ?Map<String, Class> classMap = new HashMap<String, Class>();
?? ?classMap.put("keywords", String.class);
?? ?list ?= (List<ArticleForm>) JSONArray.toArray(data, ArticleForm.class,classMap);
}

二、com.alibaba.fastjson

1、Json转Map

JSONObject jsonObject = JSON.parseObject(jsonStr);
Map<String,Object> map = new HashMap<>();
map.put("code",jsonObject .getInt("code"));

2、Json转实体

ArticleForm articleForm = JSON.parseObject(jsonStr, new TypeReference<ArticleForm>() {});

3、Json转集合

List<ArticleForm> list = JSON.parseObject(jsonStr,new TypeReference<ArrayList<ArticleForm>>() {});

Java常用json处理

// String和json的互相转换
       String str = "{\"status\":200,\"message\":\"\",\"data\":{\"KmList\":[\"总分\",\"语文\",\"数学\",\"英语\",\"道德与法治\",\"科学基础\"]}}";
       System.out.println("str:"+str);
//        JSONArray arrays = JSON.parseArray(str);        // string转jsonArray
       JSONObject jsonObject = JSON.parseObject(str);    // string转jsonObject
       System.out.println("jsonObject:"+jsonObject);
       String s = jsonObject.toJSONString();             // json(object和Array相同)转string

// json转list<Object>或者object
       String str1 = "[\"总分\",\"语文\",\"数学\",\"英语\",\"道德与法治\",\"科学基础\"]";
       List<String> list = JSON.parseArray(str1, String.class); // json转list集合,将String.class改成其他对象.class即可
       System.out.println("list:"+JSON.toJSONString(list));
       String s1 = JSON.parseObject(JSON.toJSONString("语文"), String.class);       // json转对象,将String.class改成其他对象.class即可
       System.out.println("s1:"+s1);
       // object转字符串后即可转jsonObject或者jsonArray

// json和map
       Map<String, Object> map = new HashMap<>();
       map.put("xAxis","11");
       map.put("yAxis","2222");
       String json = JSON.toJSONString(map);//map转String
       System.out.println("json:"+json);
       Map<String, Object>  map1 = JSON.parseObject(json, Map.class);     // 转List<Map> parserArray即可
       System.out.println("map1:"+map1);

来源:https://blog.csdn.net/alex_fung/article/details/83150244

标签:Java,Json,处理
0
投稿

猜你喜欢

  • Android开发之全屏与非全屏的切换设置方法小结

    2021-07-05 04:10:13
  • java 垃圾回收机制以及经典垃圾回收器详解

    2022-07-06 05:16:08
  • 详解Java 中的三种代理模式

    2023-06-25 07:49:17
  • Java中Scanner类与BufferReader类的不同点(非常详细)

    2023-07-07 01:21:18
  • C#中异步回调函数用法实例

    2023-01-05 13:10:53
  • Spring Boot 2.5.0 重新设计的spring.sql.init 配置有啥用

    2021-12-04 00:04:43
  • Java设计模式之装饰模式详解

    2022-09-27 05:55:32
  • C#数据导入到EXCEL的方法

    2023-01-16 02:27:26
  • Spring ApplicationListener监听器用法详解

    2022-08-21 00:00:08
  • 如何让Spring Rest 接口中路径参数可选

    2022-02-17 19:29:14
  • 迅速掌握Java容器中常用的ArrayList类与Vector类用法

    2022-12-16 16:18:47
  • 深入C# 内存管理以及优化的方法详解

    2021-10-24 14:24:03
  • C#单线程和多线程的端口扫描器应用比较详解

    2023-08-07 21:01:45
  • Flutter 快速实现聊天会话列表效果示例详解

    2022-10-21 09:18:31
  • Spring Boot与Spark、Cassandra系统集成开发示例

    2021-06-03 13:40:51
  • 通过JDK源码角度分析Long类详解

    2022-03-11 19:26:38
  • IDEA安装阿里巴巴编码规范插件的两种方式详解(在线安装和离线安装)

    2022-07-23 19:18:54
  • 解析Java线程同步锁的选择方法

    2023-02-08 11:02:32
  • android自动化测试知识点总结

    2022-12-28 03:51:50
  • Java实现身份证号码验证源码示例分享

    2022-12-24 03:58:50
  • asp之家 软件编程 m.aspxhome.com