使用GSON序列化对象

时间:2013-07-19 15:51:40

标签: java android json serialization gson

如何使用gson序列化和反序列化此对象:

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是类test的一个实例,但由于List中的Pair结构而无法正常工作。

2 个答案:

答案 0 :(得分:1)

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

  

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

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

答案 1 :(得分:0)

如果对象属于泛型类型,则由于Java Type Erasure,通用类型信息将丢失。您可以通过为泛型类型指定正确的参数化类型来解决此问题。 尝试参数化类型,如List<String>。这应该工作