全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象

24,948次阅读
没有评论

共计 3643 个字符,预计需要花费 10 分钟才能阅读完成。

文章目录

  • 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. JSONObjectjava 对象

  3. JsonStringJSONObject

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

1.1 框架引用

  1. 如果你使用的是 fastjson,可引入如下jar 包:
dependency>
    groupId>com.alibabagroupId>
    artifactId>fastjsonartifactId>
    version>1.2.54version>
dependency>
  1. 如果你使用的是 orgJson,可引入如下jar 包:
dependency>
   groupId>org.jsongroupId>
   artifactId>jsonartifactId>
   version>20230227version>
dependency>
  1. 如果你使用的是 Jackson,可引入如下jar 包:
properties>
    java.version>1.8java.version>
  	jackson.version>2.10.1jackson.version>
properties>

dependency>
    groupId>com.fasterxml.jackson.coregroupId>
    artifactId>jackson-databindartifactId>
    version>${jackson.version}version>
dependency>
dependency>
    groupId>com.fasterxml.jackson.coregroupId>
    artifactId>jackson-coreartifactId>
    version>${jackson.version}version>
dependency>
dependency>
    groupId>com.fasterxml.jackson.coregroupId>
    artifactId>jackson-annotationsartifactId>
    version>${jackson.version}version>
dependency>

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

1.2 创建 java 实体对象

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

Student类的代码如下所示:


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


@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 对象

2.2 java 对象转 JSONString


@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 对象

3. JSONObject 转 java 对象和 JSONString

3.1 JSONObject 转 java 对象


@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.2 JSONObject 转 JSONString


@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. JSONString 转 JSONObject 和 java 对象

4.1 JSONString 转 java 对象


@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 对象

4.2 JSONString 转 JSONObject


@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 对象

5. 文末总结

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

原文地址: 全网详细解说:java 对象转 JSONObject 和 JSONString、JSONObject 转 java 对象和 JSONString,JSONString 转 JSONObject 和 java 对象

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-07发表,共计3643字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)