如何使用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结构而无法正常工作。
答案 0 :(得分:1)
您已使用Gson
方法配置了excludeFieldsWithoutExposeAnnotation
个对象。
来自documentation:
配置Gson排除考虑的所有字段 没有Expose的序列化或反序列化 注释
你能改变Pair类吗?如果是,则必须将@Expose
注释添加到要序列化为JSON的每个属性。如果不是,您可以在程序中创建类似的类并添加注释。
答案 1 :(得分:0)
如果对象属于泛型类型,则由于Java Type Erasure
,通用类型信息将丢失。您可以通过为泛型类型指定正确的参数化类型来解决此问题。
尝试参数化类型,如List<String>
。这应该工作