关于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,处理
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android使用Theme自定义Activity进入退出动画的方法
2022-03-04 02:12:32
C#实现一键清空控件值的示例代码
2021-11-12 12:10:15
![](https://img.aspxhome.com/file/2023/5/79105_0s.png)
Java内存模型与JVM运行时数据区的区别详解
2023-11-24 13:29:08
SpringBoot使用Thymeleaf模板引擎访问静态html的过程
2023-11-25 10:04:44
![](https://img.aspxhome.com/file/2023/5/60055_0s.png)
JAVA基础之注解与反射的使用方法和场景
2022-02-23 19:50:00
![](https://img.aspxhome.com/file/2023/8/65778_0s.jpg)
maven install报错中程序包xxx不存在的问题解决
2023-03-05 03:06:51
![](https://img.aspxhome.com/file/2023/9/65309_0s.jpg)
java实现删除某条信息并刷新当前页操作
2022-06-26 07:12:12
![](https://img.aspxhome.com/file/2023/5/69885_0s.jpg)
Spring MVC4.1服务器端推送实现过程解析
2021-07-24 14:53:16
![](https://img.aspxhome.com/file/2023/9/69949_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/6/68726_0s.png)
使用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