gson使用demo

这篇博客展示了如何使用Gson库在Java中将对象转换为JSON字符串,以及如何将JSON数据还原为Java对象。首先创建了一个Student类,用@Expose和@SerializedName注解指定要序列化的字段。然后通过Gson实例将Student对象转换为JSON字符串,再将JSON字符串反序列化回Student对象。此外,还演示了如何处理包含多个对象的列表,将其转换为JSON格式,并从JSON字符串中恢复列表对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.deppon.gson;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;
class Student {
@Expose
private int id;
@Expose
@SerializedName("bir")
private String name;
private boolean sex;


public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String isSex() {
if (this.sex)
return "男";
else
return "女";
}
public void setSex(String sex) {
if (sex.endsWith("男"))
this.sex = true;
else
this.sex = false;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", sex=" + sex + "]";
}
}
public class MyGsonTest {
public static void main(String[] args) {
Gson gson = new Gson();// 会转化类的所有属性
Student stu = new Student();
stu.setId(1);
stu.setName("Lily");
stu.setSex("男");
String lily = gson.toJson(stu);
System.out.println("Json字符串" + lily);
Student s = gson.fromJson(lily, Student.class);
System.out.println("Student类" + s);
System.out.println("=====================");
gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation()
.create();// 只转化类的属性中有@Expose的属性
Student s1 = new Student();
Student s2 = new Student();
Student s3 = new Student();
s1.setId(1);
s2.setId(2);
s3.setId(3);
s1.setName("tom");
s2.setName("john");
s3.setName("dave");
s1.setSex("男");
s2.setSex("女");
s3.setSex("男");
List<Student> stus = new ArrayList<Student>();
stus.add(s1);
stus.add(s2);
stus.add(s3);
String str2 = gson.toJson(stus);
System.out.println("list转json:" + str2);


List<Student> reStus = gson.fromJson(str2,
new TypeToken<List<Student>>() {
}.getType());


System.out.println("json转list:");
for (Student sss : reStus) {
System.out.println(sss);
}
// 输出结果如下:
// Json字符串{"id":1,"bir":"Lily","sex":true}
// Student类Student [id=1, name=Lily, sex=true]
// =====================
// list转json:[{"id":1,"bir":"tom"},{"id":2,"bir":"john"},{"id":3,"bir":"dave"}]
// json转list:
// Student [id=1, name=tom, sex=false]
// Student [id=2, name=john, sex=false]
// Student [id=3, name=dave, sex=false]
//
}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值