如何使用动态SerializedName注释?

时间:2019-05-07 13:33:55

标签: java android gson realm

我有一个用gson在领域模型中通过注解@SerializedName转换的json。

但是有时在json中,有一个未知密钥,我想将其序列化为字符串。

public class example extend Realmobject{
@SerializedName("example1")
@Expose
private String exampleNr1;
@SerializedName("example2")
@Expose
private String exampleNr2;


private String someOtherValue;
Getter / Setter here...

}

Json就是这样

[
{
"example1": "1234",
"example2": "1234",
"x": "dynamic"}, {
"example1": "1454",
"example2": "165456",
"xy": "dynamic"}]

现在,我将x和xy键(somtimes命名为xyz,依此类推)序列化为someOtherValue字符串。 在@SerializedName(value =“”,Alternative = {“”})上方,我没有机会,因为我不知道该字段的名称。

i将此序列化 清单woList = gson.fromJson(parentArray, new TypeToken>(){} .getType());

1 个答案:

答案 0 :(得分:0)

您可以先将其转换为JSONObject。然后,您可以遍历JSONObject内部的一组键。

    JSONObject json = gson.fromJson(stringJson, JSONObject.class);
    Iterator<String> set = json.keys();
    while(set.hasNext()) {
        String dynamicAttributeName = set.next();
    }
    json.get(dynamicAttributeName); //to get the value