使用示例
将 JSON 字符串反序列化为对象
package org.example;
import com.google.gson.Gson;
import lombok.Data;
public class Main {
@Data
public static class UserInfo {
private String name;
}
public static void main(String[] args) {
String jsonStr = "{\"name\":\"李白\"}";
Gson gson = new Gson();
UserInfo userInfo = gson.fromJson(jsonStr, UserInfo.class);
System.out.println(userInfo);
}
}
执行结果:
Main.UserInfo(name=李白)
使用 TypeToken 将 JSON 字符串反序列化为含有泛型变量的 List 对象
package org.example;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.List;
public class Main {
public static void main(String[] args) {
TypeToken typeToken = new TypeToken<List<Long>>(){};
Gson gson = new Gson();
List<Long> list = gson.fromJson("[1,2,34]", typeToken.getType());
System.out.println("list: " + list);
}
}
执行结果:
list: [1, 2, 34]
使用 TypeToken 将 JSON 字符串反序列化为含有泛型变量的对象
package org.example;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import lombok.Data;
public class Main {
@Data
public static class UserInfo {
private String name;
}
@Data
public static class DataHolder<T> {
private T data;
}
public static void main(String[] args) {
TypeToken typeToken = new TypeToken<DataHolder<Long>>(){};
Gson gson = new Gson();
DataHolder<Long> result = gson.fromJson("{\"data\": 123}", typeToken.getType());
System.out.println("result: " + result);
}
}
执行结果:
result: Main.DataHolder(data=123)