覆盖一个密钥的GSON解析

时间:2016-04-04 15:13:49

标签: json gson

是否可以仅覆盖一个密钥的GSON解析?

e.g。

Parse the following JSON:

{
  "a" : "data",
  "b" : "more data",
}

进入这个班级:

class Foo {

    String a;
    String b;

}

但转变" b"在反序列化过程中变为大写?

我想避免编写自定义反序列化程序并手动解析所有值,因为这是一个很大的类。

由于

1 个答案:

答案 0 :(得分:0)

在Gson中,您可以使用@SerializedName属性

为密钥指定多个名称
public static void main(String[] args) {

    String str1="{" +"  \"a\" : \"data\"," +"  \"B\" : \"more data\"}";
    String str2="{" +"  \"a\" : \"data\"," +"  \"b\" : \"more data\"}";

    Gson gson=new Gson();
    //result will be same for both str1 and str2
    Foo obj=gson.fromJson(str1, Foo.class);
    System.out.println(obj.getB());

}

class Foo {
    String a;
    @SerializedName(value="b", alternate={"B"})
    String b;

    //setter and getters
}