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 Listlist = 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
复杂对象比如多个嵌套的对象都可以使用此方法进行转换