java与Json相互转换

简述:

  在代码编写的过程中,我们经常需要把Java对象转成json对象、json串,json串转成java对象、json对象,json对象转换Java对象、json串,以及一些复杂对象的转换,下面介绍一下常见的类型转换,JSONObject继承的JSON,两种使用的是一个方法,这里我们使用com.alibaba.fastjson.JSONObject类进行转换;

1.Java对象>>JSON对象

  方法:JSONObject.toJSON(javaObject)

复制代码
 1 public class JavaObjectToJsonObject{
 2     public static void main(String[] args) {
 3         User user = new User();
 4         user.setName("王大锤");
 5         user.setAge("25");
 6         
 7         //Java >> Json对象
 8         JSONObject jsonObject = (JSONObject) JSONObject.toJSON(user);
 9         System.out.println("JavaObjectToJsonObject is " + jsonObject);
10         
11     }
12 }
复制代码

2.Java对象>>JSON字符串

  方法:JSONObject.toJSONString(javaObject)

复制代码
 1 public class JavaObjectToJsonSting{
 2     public static void main(String[] args) {
 3         User user = new User();
 4         user.setName("王大锤");
 5         user.setAge("25");
 6 
 7         //Java >> String(Json形式)
 8         String string = JSONObject.toJSONString(user);
 9         System.out.println("JavaObjectToJsonSting is " + string);
10     }
11 }
复制代码

 3.JSON对象>>JSON字符串

 方法:JSONObject.toJSONString();

复制代码
 1 public class JsonObjectToJsonSting{
 2     public static void main(String[] args) {
 3         User user = new User();
 4         user.setName("王大锤");
 5         user.setAge("25");
 6 
 7         //先转成Json对象
 8         JSONObject jsonObject = (JSONObject) JSONObject.toJSON(user);
 9 
10         //Json class >> String(Json形式)
11         String jsonString = jsonObject.toJSONString();
12         System.out.println("JsonObjectToJsonSting is " + jsonString);
13 
14     }
15 }
复制代码

4.JSON对象>>Java对象

方法:JSONObject.toJavaObject(jsonObject, javaObject.class);

复制代码
 1 public class JsonObjectToJavaObject{
 2     public static void main(String[] args) {
 3         User user = new User();
 4         user.setName("王大锤");
 5         user.setAge("25");
 6 
 7         //先转成Json对象
 8         JSONObject jsonObject = (JSONObject) JSONObject.toJSON(user);
 9         
10         //Json对象 >> Java对象
11         User newUser = JSONObject.toJavaObject(jsonObject, User.class);
12         System.out.println("JsonObjectToJavaObject is " + newUser.getName() + newUser.getAge());
13     }
14 }
复制代码

5.JSON字符串>>JSON对象

方法:JSONObject.parseObject(JsonString)

复制代码
 1 public class JsonStringToJsonObject{
 2     public static void main(String[] args) {
 3         User user = new User();
 4         user.setName("王大锤");
 5         user.setAge("25");
 6         
 7         //先转成Json字符串
 8         String jsonString = JSONObject.toJSONString(user);
 9 
10         //JsonString >> Json对象
11         JSONObject jsonObject = JSONObject.parseObject(jsonString);
12         System.out.println("JsonStringToJsonObject is " + jsonObject);
13     }
14 }
复制代码

 6.JSON字符串>>Java对象

方法:JSONObject.parseObject(JsonStr, JavaObject.class);

复制代码
 1 public class JsonStringToJavaObject{
 2     public static void main(String[] args) {
 3         User user = new User();
 4         user.setName("王大锤");
 5         user.setAge("25");
 6         
 7         //先转成JSON字符串
 8         String jsonString = JSONObject.toJSONString(user);
 9 
10         //JSON字符串转换成Java对象
11         User newUser = JSONObject.parseObject(jsonString, User.class);
12         System.out.println("JsonStringToJavaObject is " + newUser.getName() + newUser.getAge());
13     }
14 }
复制代码

 6.JSON字符串>>Map

复制代码
 1 public class ComplexityObject {
 2     public static void main(String[] args) {
 3         User user1 = new User();
 4         user1.setName("王大锤");
 5         user1.setAge("25");
 6         User user2 = new User();
 7         user2.setName("王小锤");
 8         user2.setAge("20");
 9         
10         //先转成JSON字符串
11         String jsonStrUser1 = JSONObject.toJSONString(user1);
12         String jsonStrUser2 = JSONObject.toJSONString(user2);
13 
14         //JSON字符串转换成JSON对象
15         JSONObject jsonObject1 = JSONObject.parseObject(jsonStrUser1);
16         JSONObject jsonObject2 = JSONObject.parseObject(jsonStrUser2);
17         
18         
19         List<JSONObject> list = Lists.newArrayList();
20         list.add(jsonObject1);
21         list.add(jsonObject2);
22         
23         Map<String,List<JSONObject>> map = Maps.newHashMap();
24         map.put("userList", list);
25         
26         //转成JSON字符串
27         String jsonString = JSONObject.toJSONString(map);
28         
29         Map<String,List<JSONObject>> permissonMap =  JSONObject.parseObject(jsonString, new TypeReference<Map<String, List<JSONObject>>>(){});
30         System.out.println("JsonStringToJavaObject length is " + map.size()+ " content is "+JSON.toJSONString(permissonMap));
31     }
32 }
复制代码

复杂对象比如多个嵌套的对象都可以使用此方法进行转换

posted on   qqq9527  阅读(196)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示