我想反序列化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,这是您想要的吗?

10-01 06:25
查看更多