我想反序列化json集合{{a:"1", b:"2"},{a:"6", b:"5"},{a:"4", b:"3"}}
到这个对象:{public String a, public String b, private String c}.
我正在使用Gson
`mOffersList.addAll((Collection<? extends Offer>) gson.fromJson(result, collectionType));`
我的代码失败,因为没有办法填充成员c。
我用谷歌搜索,发现我可以使用
@expose
注释从序列化中删除字段。但是,我如何才能做到这一点呢?意思是,不填充对象中的多余字段吗?
我有很多成员要公开,只有几个成员要隐藏。
最佳答案
如果我正确地收到了您的原始问题,则您有一个对象:
public class MyObject {
public String a;
public String b;
private String c;
public String toString() {
return a + " " + b + " " + c;
}
}
以及以下格式的JSON:
{a:\"1\", b:\"2\"}
您想要实现的是在不填充C的情况下将JSON反序列化为
MyObject
:String json = "{a:\"1\", b:\"2\"}";
Gson g = new Gson();
MyObject myObject = g.fromJson(json, MyObject.class);
System.out.println(myObject);
这将打印出
1 2 null
,这是您想要的吗?