全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象
作者:mmseoamin日期:2023-12-18

文章目录

  • 1. 文章引言
    • 1.1 框架引用
    • 1.2 创建java实体对象
    • 2. java对象转JSONObject和JSONString
      • 2.1 java对象转JSONObject
      • 2.2 java对象转JSONString
      • 3. JSONObject转java对象和JSONString
        • 3.1 JSONObject转java对象
        • 3.2 JSONObject转JSONString
        • 4. JSONString转JSONObject和java对象
          • 4.1 JSONString转java对象
          • 4.2 JSONString转JSONObject
          • 5. 文末总结

            1. 文章引言

            我们在开发的过程中,难免会到如下转换的情况:

            1. java对象转JSONObject

            2. JSONObject转java对象

            3. JsonString转JSONObject

            在分析这三种类型的相互转化之前,我们需要引入相关的jar包:

            1.1 框架引用

            1. 如果你使用的是fastjson,可引入如下jar包:
            
                com.alibaba
                fastjson
                1.2.54
            
            
            1. 如果你使用的是orgJson,可引入如下jar包:
            
               org.json
               json
               20230227
            
            
            1. 如果你使用的是Jackson,可引入如下jar包:
            
                1.8
              	2.10.1
            
            
                com.fasterxml.jackson.core
                jackson-databind
                ${jackson.version}
            
            
                com.fasterxml.jackson.core
                jackson-core
                ${jackson.version}
            
            
                com.fasterxml.jackson.core
                jackson-annotations
                ${jackson.version}
            
            

            而我在开发中常用的是fastjson,这是阿里巴巴开源的框架,其开原地址为:https://github.com/alibaba/fastjson

            1.2 创建java实体对象

            同时,以Student类为例子,来演示这三者的相互转换。

            Student类的代码如下所示:

            /**
            * @author super先生
            * @datetime 2023/4/7 14:09
            * @desc 学生类,用来测试同JSONObject和JSONString转换的示例类
            */
            public class Student {
             private Long id;
             private String username;
             private String studentNo;
             public Long getId() {
               return id;
             }
             public void setId(Long id) {
               this.id = id;
             }
             public String getUsername() {
               return username;
             }
             public void setUsername(String username) {
               this.username = username;
             }
             public String getStudentNo() {
               return studentNo;
             }
             public void setStudentNo(String studentNo) {
               this.studentNo = studentNo;
             }
             @Override
             public String toString() {
               return String.format(
                   "output: id -> %d, username -> %s, studentNo -> %s", id, username, studentNo);
             }
            }
            

            2. java对象转JSONObject和JSONString

            2.1 java对象转JSONObject

            /**
             * java对象转化为JSONObject
             *
             * @author super先生
             * @datetime 2023/4/7:14:29
             * @return
             */
            @Test
            public void testJavaToJSONObject() {
              Student student = new Student();
              student.setId(12L);
              student.setUsername("super先生");
              student.setStudentNo("20231232520");
              JSONObject studentJsonObject = (JSONObject) JSONObject.toJSON(student);
              System.out.println(studentJsonObject);
            }
            

            输出结果如下图:

            全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象,在这里插入图片描述,第1张

            2.2 java对象转JSONString

            /**
             * java对象转化为JSONString
             * 
             * @author super先生 
             * @datetime 2023/4/7:14:33
             * @return 
             */
            @Test
            public void testJavaToJSONString() {
              Student student = new Student();
              student.setId(12L);
              student.setUsername("super先生");
              student.setStudentNo("20231232520");
              String studentJsonString = JSONObject.toJSONString(student);
              System.out.println(studentJsonString);
            }
            

            输出结果如下图:

            全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象,在这里插入图片描述,第2张

            3. JSONObject转java对象和JSONString

            3.1 JSONObject转java对象

            /**
             * JSONObject转为java实例化对象
             *
             * @author super先生
             * @datetime 2023/4/7:14:39
             * @return
             */
            @Test
            public void testJSONObjectToJava() {
              JSONObject jsonObject = new JSONObject();
              jsonObject.put("id", 12);
              jsonObject.put("username", "super先生");
              jsonObject.put("studentNo", "20231232520");
              Student student = jsonObject.toJavaObject(Student.class);
              System.out.println(student);
            }
            

            输出结果如下图:

            全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象,在这里插入图片描述,第3张

            3.2 JSONObject转JSONString

            /**
             * JSONObject转为JSONString
             * 
             * @author super先生 
             * @datetime 2023/4/7:14:42
             * @return 
             */
            @Test
            public void testJSONObjectToJSONString() {
              JSONObject jsonObject = new JSONObject();
              jsonObject.put("id", 12);
              jsonObject.put("username", "super先生");
              jsonObject.put("studentNo", "20231232520");
              String studentJsonString = jsonObject.toJSONString();
              System.out.println(studentJsonString);
            }
            

            输出结果如下图:

            全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象,在这里插入图片描述,第4张

            4. JSONString转JSONObject和java对象

            4.1 JSONString转java对象

            /**
             * JSONString转为java实例化对象
             *
             * @author super先生
             * @datetime 2023/4/7:14:46
             * @return
             */
            @Test
            public void testJSONStringToJava() {
              String studentJsonString = "{\"studentNo\":\"20231232520\",\"id\":12,\"username\":\"super先生\"}";
              Student student = JSONObject.parseObject(studentJsonString, Student.class);
              System.out.println(student);
            }
            

            输出结果如下图:

            全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象,在这里插入图片描述,第5张

            4.2 JSONString转JSONObject

            /**
             * JSONString转为JSONObject
             *
             * @author super先生
             * @datetime 2023/4/7:14:48
             * @return
             */
            @Test
            public void testJSONStringToJSONObject() {
              String studentJsonString = "{\"studentNo\":\"20231232520\",\"id\":12,\"username\":\"super先生\"}";
              JSONObject jsonObject = JSONObject.parseObject(studentJsonString);
              System.out.println(jsonObject);
            }
            

            输出结果如下图:

            全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象,在这里插入图片描述,第6张

            5. 文末总结

            当然,我是以fastjson这个框架来演示的,你在实际工作中以公司使用的框架为主。