gpt4 book ai didi

Java GSON : Deserializing a field which has different types

转载 作者:行者123 更新时间:2023-12-01 04:25:07 26 4
gpt4 key购买 nike

我在反序列化 json 时遇到了问题,其中有一个字段可以有多种类型,并且该类型由另一个字段确定。

为了清楚地说明这个问题,请看下面的 3 个示例,json 称为 Extra,它的字段 Unit 始终是字符串,它的字段 Value 可以是小数(示例 1)、对象(示例 2) )或对象列表(示例 3),具体取决于字段单位的值。

我对 GSON 相当陌生,不知道如何解决这个问题,从 API 来看,我似乎必须编写一个自定义反序列化器?我将如何为这个示例编写一个字段的类型取决于另一个字段的示例?

Example 1
Extra {
Unit:"Decimal"
Value:0.0
}

Example 2
Extra {
Unit:"Object"
Value:{object}
}

Example 3
Extra {
Unit:"List of objects"
Value:[{object}
{object},
{object},
]
}

最佳答案

尝试如下所示的操作:拿一个 bean 例如:ExampleBean在ExampleBean中获取另一个值列表的属性,例如:列表值;

然后尝试将 GSON 转换为 List,如下所示

    public static List getListFromGsonString(String jsonString){        Gson gson = new Gson();        Type listType = new TypeToken() {}.getType();        List list = (List)gson.fromJson(jsonString, listType);        return list;    }    

这就是我们在项目中所做的。如果不适用则忽略。

关于Java GSON : Deserializing a field which has different types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18571410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com