在这篇文章中,我们将创建一个例子,使用GSON library将JSON表示法转换为Java对象。
Gson是一个Java库,可用于将Java对象转换为其JSON表示。它也可以用来将JSON字符串转换为一个等价的Java对象。Gson可以处理任意的Java对象,包括你没有源代码的已有的对象。在这个例子中,我们将向你展示如何使用GSON将Java对象序列化为JSON。请看使用GSON将Java对象转换成JSON。
要在Maven2/3中使用Gson,你可以通过添加以下依赖项来使用Maven Central中的Gson版本。
<dependencies>
<!-- Gson: Java to Json conversion -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
<scope>compile</scope>
</dependency>
</dependencies>
让我们创建Student
类,我们将使用GSON将JSON表示法反序列化为这个Student
Java对象。
class Student {
private long studentId;
private String studentName;
private Set < Phone > studentPhoneNumbers = new HashSet < Phone > (0);
public long getStudentId() {
return studentId;
}
public void setStudentId(long studentId) {
this.studentId = studentId;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public Set < Phone > getStudentPhoneNumbers() {
return studentPhoneNumbers;
}
public void setStudentPhoneNumbers(Set < Phone > studentPhoneNumbers) {
this.studentPhoneNumbers = studentPhoneNumbers;
}
@Override
public String toString() {
return "Student [studentId=" + studentId + ", studentName=" + studentName + ", studentPhoneNumbers=" +
studentPhoneNumbers + "]";
}
}
class Phone {
private long phoneId;
private String phoneType;
private String phoneNumber;
public Phone() {}
public Phone(String phoneType, String phoneNumber) {
this.phoneType = phoneType;
this.phoneNumber = phoneNumber;
}
public long getPhoneId() {
return phoneId;
}
public void setPhoneId(long phoneId) {
this.phoneId = phoneId;
}
public String getPhoneType() {
return phoneType;
}
public void setPhoneType(String phoneType) {
this.phoneType = phoneType;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
package net.javaguides.gson;
import java.util.HashSet;
import java.util.Set;
import com.google.gson.Gson;
/**
*
* @author Ramesh Fadatare
*
*/
public class GSONComplexObjectExample {
public static void main(String[] args) {
deserializeUserObject();
}
private static void deserializeUserObject() {
Gson gson = new Gson();
String jsonStr = "{\r\n" +
" \"studentId\": 1000,\r\n" +
" \"studentName\": \"Ramesh\",\r\n" +
" \"studentPhoneNumbers\": [\r\n" +
" {\r\n" +
" \"phoneId\": 100,\r\n" +
" \"phoneType\": \"Mobile Phone\",\r\n" +
" \"phoneNumber\": \"1234567890\"\r\n" +
" },\r\n" +
" {\r\n" +
" \"phoneId\": 101,\r\n" +
" \"phoneType\": \"Landline Phone\",\r\n" +
" \"phoneNumber\": \"2222 3333 44\"\r\n" +
" }\r\n" +
" ]\r\n" +
"}";
Student student = gson.fromJson(jsonStr, Student.class);
System.out.println(student.toString());
}
}
输出
Student [studentId=1000, studentName=Ramesh, studentPhoneNumbers=[net.javaguides.gson.Phone@5ce65a89, net.javaguides.gson.Phone@25f38edc]]
package net.javaguides.gson;
import java.util.HashSet;
import java.util.Set;
import com.google.gson.Gson;
/**
*
* @author Ramesh Fadatare
*
*/
public class GSONComplexObjectExample {
public static void main(String[] args) {
deserializeUserObject();
}
private static void deserializeUserObject() {
Gson gson = new Gson();
String jsonStr = "{\r\n" +
" \"studentId\": 1000,\r\n" +
" \"studentName\": \"Ramesh\",\r\n" +
" \"studentPhoneNumbers\": [\r\n" +
" {\r\n" +
" \"phoneId\": 100,\r\n" +
" \"phoneType\": \"Mobile Phone\",\r\n" +
" \"phoneNumber\": \"1234567890\"\r\n" +
" },\r\n" +
" {\r\n" +
" \"phoneId\": 101,\r\n" +
" \"phoneType\": \"Landline Phone\",\r\n" +
" \"phoneNumber\": \"2222 3333 44\"\r\n" +
" }\r\n" +
" ]\r\n" +
"}";
Student student = gson.fromJson(jsonStr, Student.class);
System.out.println(student.toString());
}
}
class Student {
private long studentId;
private String studentName;
private Set < Phone > studentPhoneNumbers = new HashSet < Phone > (0);
public long getStudentId() {
return studentId;
}
public void setStudentId(long studentId) {
this.studentId = studentId;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public Set < Phone > getStudentPhoneNumbers() {
return studentPhoneNumbers;
}
public void setStudentPhoneNumbers(Set < Phone > studentPhoneNumbers) {
this.studentPhoneNumbers = studentPhoneNumbers;
}
@Override
public String toString() {
return "Student [studentId=" + studentId + ", studentName=" + studentName + ", studentPhoneNumbers=" +
studentPhoneNumbers + "]";
}
}
class Phone {
private long phoneId;
private String phoneType;
private String phoneNumber;
public Phone() {}
public Phone(String phoneType, String phoneNumber) {
this.phoneType = phoneType;
this.phoneNumber = phoneNumber;
}
public long getPhoneId() {
return phoneId;
}
public void setPhoneId(long phoneId) {
this.phoneId = phoneId;
}
public String getPhoneType() {
return phoneType;
}
public void setPhoneType(String phoneType) {
this.phoneType = phoneType;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
输出
Student [studentId=1000, studentName=Ramesh, studentPhoneNumbers=[net.javaguides.gson.Phone@5ce65a89, net.javaguides.gson.Phone@25f38edc]]
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/10/convert-json-to-java-object-using-gson.html
内容来源于网络,如有侵权,请联系作者删除!