共计 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. 文章引言
我们在开发的过程中,难免会到如下转换的情况:
-
java
对象转JSONObject
-
JSONObject
转java
对象 -
JsonString
转JSONObject
在分析这三种类型的相互转化之前,我们需要引入相关的 jar
包:
1.1 框架引用
- 如果你使用的是
fastjson
,可引入如下jar
包:
dependency>
groupId>com.alibabagroupId>
artifactId>fastjsonartifactId>
version>1.2.54version>
dependency>
- 如果你使用的是
orgJson
,可引入如下jar
包:
dependency>
groupId>org.jsongroupId>
artifactId>jsonartifactId>
version>20230227version>
dependency>
- 如果你使用的是
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);
}
输出结果如下图:
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);
}
输出结果如下图:
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);
}
输出结果如下图:
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);
}
输出结果如下图:
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);
}
输出结果如下图:
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);
}
输出结果如下图:
5. 文末总结
当然,我是以 fastjson
这个框架来演示的,你在实际工作中以公司使用的框架为主。
正文完