zoukankan      html  css  js  c++  java
  • 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 }

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

  • 相关阅读:
    欧几里得算法
    匈牙利算法找二分图最大匹配
    hdu3374 String Problem(最小值表示法 + KMP)
    hdu6704 K-th occurrence(后缀数组+RMQ+主席树)
    洛谷 P3809 【模板】后缀排序
    hdu2222 【AC自动机】Keywords Search
    2019杭电多校十 1011 Make Rounddog Happy(rmq + 分治)
    Separate String(Ac自动机+dp)
    2019杭电多校二 I Love Palindrome String(回文自动机)
    HDU2451 Simple Addition expression(数位dp/找规律)
  • 原文地址:https://www.cnblogs.com/qqq9527/p/11794384.html
Copyright © 2011-2022 走看看