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

文章目录

  • 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.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.54</version>
</dependency>
  1. 如果你使用的是orgJson,可引入如下jar包:
<dependency>
   <groupId>org.json</groupId>
   <artifactId>json</artifactId>
   <version>20230227</version>
</dependency>
  1. 如果你使用的是Jackson,可引入如下jar包:
<properties>
    <java.version>1.8</java.version>
  	<jackson.version>2.10.1</jackson.version>
</properties>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>${jackson.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>${jackson.version}</version>
</dependency>

而我在开发中常用的是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);
}

输出结果如下图:

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);
}

输出结果如下图:

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);
}

输出结果如下图:

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);
}

输出结果如下图:

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);
}

输出结果如下图:

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);
}

输出结果如下图:

5. 文末总结


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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年12月15日
下一篇 2023年12月15日

相关推荐