使用gson序列化具有泛型类型的类,可以通过以下步骤实现:
public class Response<T> {
private int code;
private String message;
private T data;
// 省略构造方法和getter/setter方法
}
上述示例中的Response
类有一个泛型参数T
,表示响应数据的类型。
Gson
对象,并使用TypeToken
类来获取泛型类型的实际类型。Gson gson = new Gson();
Type type = new TypeToken<Response<User>>(){}.getType();
Response<User> response = new Response<>();
response.setCode(200);
response.setMessage("Success");
response.setData(new User("John", "Doe"));
String json = gson.toJson(response, type);
上述示例中,我们创建了一个Gson
对象,并使用TypeToken
来获取Response<User>
的实际类型。然后,我们创建一个Response<User>
对象,并设置其属性值。最后,我们使用gson.toJson()
方法将response
对象序列化为JSON字符串。
String json = "{\"code\":200,\"message\":\"Success\",\"data\":{\"name\":\"John\",\"lastName\":\"Doe\"}}";
Type type = new TypeToken<Response<User>>(){}.getType();
Response<User> response = gson.fromJson(json, type);
上述示例中,我们使用gson.fromJson()
方法将JSON字符串反序列化为Response<User>
对象。通过传递TypeToken
获取的实际类型,Gson可以正确地将JSON字符串转换为具有泛型类型的对象。
注意:在上述示例中,User
类是一个自定义的类,你可以根据自己的需要定义和使用其他具有泛型类型的类。
希望以上内容对你有所帮助!如果你对其他云计算或编程方面的问题有任何疑问,请随时提问。
DB・洞见
腾讯云GAME-TECH游戏开发者技术沙龙
云+社区技术沙龙[第17期]
云+社区技术沙龙[第28期]
技术创作101训练营
云+社区技术沙龙[第1期]
Techo Day 第二期
第四期Techo TVP开发者峰会
技术创作101训练营
领取专属 10元无门槛券
手把手带您无忧上云