文章目录
- 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.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.54</version> </dependency>
复制
- 如果你使用的是
orgJson
,可引入如下jar
包:
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20230227</version> </dependency>
复制
- 如果你使用的是
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
这个框架来演示的,你在实际工作中以公司使用的框架为主。