关于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使用Theme自定义Activity进入退出动画的方法

    2022-03-04 02:12:32
  • C#实现一键清空控件值的示例代码

    2021-11-12 12:10:15
  • Java内存模型与JVM运行时数据区的区别详解

    2023-11-24 13:29:08
  • SpringBoot使用Thymeleaf模板引擎访问静态html的过程

    2023-11-25 10:04:44
  • JAVA基础之注解与反射的使用方法和场景

    2022-02-23 19:50:00
  • maven install报错中程序包xxx不存在的问题解决

    2023-03-05 03:06:51
  • java实现删除某条信息并刷新当前页操作

    2022-06-26 07:12:12
  • Spring MVC4.1服务器端推送实现过程解析

    2021-07-24 14:53:16
  • Spring Boot深入排查 java.lang.ArrayStoreException异常

    2023-07-11 16:31:27
  • Android实现固定屏幕显示的方法

    2023-05-23 18:29:07
  • 如何将javaweb项目部署到linux下

    2023-11-11 11:45:11
  • C#动态执行批处理命令的方法

    2023-03-16 23:19:40
  • 浅谈Java 三种方式实现接口校验

    2023-01-20 02:57:55
  • Java设计模式之java装饰者模式详解

    2023-10-27 06:17:04
  • 使用Java实现类似Comet风格的web app

    2023-04-01 10:23:22
  • java多线程复制文件的实例代码

    2022-03-04 04:29:54
  • C#中Action和Func的区别

    2023-10-20 01:30:08
  • Java常用JVM参数实战

    2023-03-15 10:33:39
  • activemq整合springboot使用方法(个人微信小程序用)

    2023-07-08 22:29:55
  • C#中Task.Yield的用途深入讲解

    2022-11-12 00:16:23
  • asp之家 软件编程 m.aspxhome.com