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 list = Lists.newArrayList();
20         list.add(jsonObject1);
21         list.add(jsonObject2);
22         
23         Map> map = Maps.newHashMap();
24         map.put("userList", list);
25         
26         //转成JSON字符串
27         String jsonString = JSONObject.toJSONString(map);
28         
29         Map> permissonMap =  JSONObject.parseObject(jsonString, new TypeReference>>(){});
30         System.out.println("JsonStringToJavaObject length is " + map.size()+ " content is "+JSON.toJSONString(permissonMap));
31     }
32 }

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