【问题标题】:Serialize object using GSON使用 GSON 序列化对象
【发布时间】:2013-07-18 23:48:25
【问题描述】:

如何使用 gson 将这个对象序列化和反序列化为 json:

public class test{

@Expose
public List< Pair<Double,Double> > list;

@Expose
public int alpha;
}

我试过了:

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
String str = gson.toJson(testInstance,test.class);

其中 testInstance 是类测试的一个实例,但由于 List 中的 Pair 结构,它不起作用。

【问题讨论】:

  • 你能改变Pair类吗?如果是,则必须将 @Expose 注释添加到要序列化为 JSON 的每个属性。如果没有,您可以在程序中创建类似的类并添加注释。
  • 感谢您回答问题所在。

标签: java android json serialization gson


【解决方案1】:

如果对象是泛型类型,则泛型类型信息会因为Java Type Erasure 而丢失。您可以通过为泛型类型指定正确的参数化类型来解决此问题。 尝试像List&lt;String&gt; 这样的参数化类型。这应该工作

【讨论】:

    【解决方案2】:

    您已经使用excludeFieldsWithoutExposeAnnotation 方法配置了Gson 对象。 来自documentation

    配置 Gson 以排除所有字段 没有 Expose 的序列化或反序列化 注释。

    你能改变 Pair 类吗?如果是,则必须将 @Expose 注释添加到要序列化为 JSON 的每个属性。如果没有,您可以在程序中创建类似的类并添加注释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多