SpringBoot-Gson

1、简介

Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。

2、依赖

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.5</version>
</dependency>

3、创建方法

# 1、使用new Gson()
Gson gson = new Gson();
# 2、使用GsonBuilder.build()
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();

4、使用方法

//省略getter/setter,构造方法,toSting方法
public class Employee {
    private int id;
    private String firstName;
    private String lastName;
    private String email;
}

4.1、Java对象=>Json

// 1、创建一个Employee对象
Employee emp = new Employee(1001, "Lokesh", "Gupta", "howtodoinjava@gmail.com");
// 2、创建一个Gson对象		
Gson gson = new Gson();
// 3、将对象转化为Json
String jsonString = gson.toJson(emp);
// 4、打印结果		
System.out.println(jsonString);

4.2、JSON=>Java对象

// 1、构建一个Json字符串
String jsonString = "{'id':1001, 'firstName':'Lokesh', 'lastName':'Gupta', 'email':'howtodoinjava@gmail.com'}";
// 2、创建一个Gson对象
Gson gson = new Gson();
// 3、将Json字符串转化为Java对象
Employee empObject = gson.fromJson(jsonString, Employee.class);
// 4、打印结果 
System.out.println(empObject);

4.3、Json格式化的美化

// 1、新建一个Gson对象,并设置美化输出
Gson gson = new GsonBuilder()
           .setPrettyPrinting()
           .create();
// 2、新建一个Employee 对象
Employee employeeObj = new Employee(1, "Lokesh", "Gupta", "howtogoinjava@gmail.com");
// 3、将字符串格式化并输出
System.out.println(gson.toJson(employeeObj));

4.4、Json数组=>Java对象

String userJson = "[{'name': 'Alex','id': 1}, "
                + "{'name': 'Brian','id':2}, "
                + "{'name': 'Charles','id': 3}]";
         
Gson gson = new Gson(); 
 
User[] userArray = gson.fromJson(userJson, User[].class);  
 
for(User user : userArray) {
    System.out.println(user);
}

4.5、Json Array => List

// 1、构建一个Json数组
String userJson = "[{'name': 'Alex','id': 1}, " + "{'name': 'Brian','id':2}, " + "{'name': 'Charles','id': 3}]";
// 2、创建一个Gson对象
Gson gson = new Gson();
// 3、创建一个TypeToken对象
java.lang.reflect.Type userListType = new TypeToken<ArrayList<User>>() {
}.getType();
// 4、将Json数组转为List对象
ArrayList<User> userArray = gson.fromJson(userJson, userListType);
// 5、打印对象
for (User user : userArray) {
    System.out.println(user);
}

4.6、List类型成员变量

//省略getter/setter、构造方法、toString方法
public class Department2 {
    private long id;
    private String name;
    private List<User> users;	
}
# 转化方法
public static void main(String[] args) {
    // 1、创建一个Json字符串
    String departmentJson = "{'id' : 1, "
    		        + "'name': 'HR',"
    		        + "'users' : ["
    		        + "{'name': 'Alex','id': 1}, "
    		        + "{'name': 'Brian','id':2}, "
    		        + "{'name': 'Charles','id': 3}]}";
    // 2、创建一个Gson对象		 
    Gson gson = new Gson(); 
    // 3、将Json字符串转化为Java对象
    Department2 department = gson.fromJson(departmentJson, Department2.class);  
    // 4、输出对象
    System.out.println(department);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值