java - 如何更紧凑地使用Gson的TypeToken?

标签 java json gson

我正在使用 Gson 来序列化和反序列化一些 JSON。我有一个 Guava ImmutableMap<String, String> ,我想反序列化。我设法找到了serializer in Google Caliper

Gson 需要 Type反序列化到。我可以像这样生成一个:

gson.fromJson(
    serialized,
    TypeToken.getParameterized(ImmutableMap.class, String.class, String.class).getType());

TypeToken.getParameterized(ImmutableMap.class, String.class, String.class).getType()这部分感觉非常手动且容易出错。

是否有更好的替代方案,看起来更像这样?

// Does not compile
Type.of(ImmutableMap<String, String>)

最佳答案

创建 TypeToken 的规范方法对于像 ImmutableMap<String, String> 这样的参数化类型是 new TypeToken<ImmutableMap<String, String>>() {} (注意 {} )。

关于java - 如何更紧凑地使用Gson的TypeToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44113984/

相关文章:

java - 使用 Gson 或 Xtream 将 Array Json 列表 <MyObject>

java - 使用 MockMvc 测试重定向 URL 的 HTTP 状态代码

java - JFrame 在关闭 JOptionPane 后失去焦点并且无法将其设置回来

javascript - ExtJS 抓取 JSON 结果

android - Gson:适用于 Android 4.2.2 设备的 NoSuchMethodException

使用 GSON 将 JSON 转为 POJO

java - 如何在按钮单击java时显式触发按键事件

java - 计算多边形内的点

javascript - 如何读取带有坐标的 json 文件并将它们绘制在 map 中?

java - 如何统计相同的json值并将其显示在textview中?