简介
Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object.
示例
本文主要涉及如下内容:
1、JSON字符串转对象;
2、JSON字符串转集合;
3、对象转JSON字符串;
App.java
package demo.gson;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import demo.gson.entity.User;
import java.util.ArrayList;
import java.util.List;
public class App {
public static void main(String[] args) {
App.testConvertObjectToJson();
App.testConvertListToJson();
App.testConvertJsonToObject();
App.testConvertJsonToList();
}
private static void testConvertObjectToJson() {
System.out.println("== testConvertObjectToJson ==");
User user = new User("1", "0001", "程序员", "111", "test@qq.com");
System.out.println(new Gson().toJson(user));
// 结果:{"id":"1","usercode":"0001","username":"程序员","password":"111","email":"test@qq.com"}
}
private static void testConvertListToJson() {
System.out.println("== testConvertListToJson ==");
List<User> list = new ArrayList<>();
list.add(new User("1", "0001", "程序员1", "111", "test1@qq.com"));
list.add(new User("2", "0002", "程序员2", "222", "test2@qq.com"));
System.out.println(new Gson().toJson(list));
// 结果:[{"id":"1","usercode":"0001","username":"程序员1","password":"111","email":"test1@qq.com"},{"id":"2","usercode":"0002","username":"程序员2","password":"222","email":"test2@qq.com"}]
}
private static void testConvertJsonToObject() {
System.out.println("== testConvertJsonToObject ==");
String json = "{\"id\":\"1\",\"usercode\":\"0001\",\"username\":\"程序员\",\"password\":\"111\",\"email\":\"test@qq.com\"}";
System.out.println(new Gson().fromJson(json, User.class));
/*
结果:
User[id='1', usercode='0001', username='程序员', password='111', email='test@qq.com', createTime=null]
*/
}
private static void testConvertJsonToList() {
System.out.println("== testConvertJsonToList ==");
String json = "[{\"id\":\"1\",\"usercode\":\"0001\",\"username\":\"程序员1\",\"password\":\"111\",\"email\":\"test1@qq.com\"},{\"id\":\"2\",\"usercode\":\"0002\",\"username\":\"程序员2\",\"password\":\"222\",\"email\":\"test2@qq.com\"}]";
List<User> list = new Gson().fromJson(json, new TypeToken<List<User>>(){}.getType());
list.forEach(user -> System.out.println(user));
/*
结果:
User[id='1', usercode='0001', username='程序员1', password='111', email='test1@qq.com', createTime=null]
User[id='2', usercode='0002', username='程序员2', password='222', email='test2@qq.com', createTime=null]
*/
}
}
User.java
package demo.gson.entity;
import java.util.Date;
import java.util.StringJoiner;
/**
* @Description: 用户
*/
public class User {
/**
* 主键
*/
private String id;
/**
* 用户编码
*/
private String usercode;
/**
* 用户名称
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 邮箱
*/
private String email;
/**
* 创建时间
*/
private Date createTime;
public User() {}
public User(String id, String usercode, String username, String password, String email) {
this.id = id;
this.usercode = usercode;
this.username = username;
this.password = password;
this.email = email;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsercode() {
return usercode;
}
public void setUsercode(String usercode) {
this.usercode = usercode;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return new StringJoiner(", ", User.class.getSimpleName() + "[", "]")
.add("id='" + id + "'")
.add("usercode='" + usercode + "'")
.add("username='" + username + "'")
.add("password='" + password + "'")
.add("email='" + email + "'")
.add("createTime=" + createTime)
.toString();
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。