我今天在另一个问题中问了这个问题,但我担心这不会得到任何解决,因为它的措辞。
我有一个json输入,其中包含以下数据:
如您所见,option_value项在一个对象中是Array,而在另一个对象中是简单的字符串。
我如何让Gson正确处理这个问题?我的类将其描述为List对象,所以它适用于option_value是数组的前几项,但当它变成 string 时,应用崩溃,我得到一个json解析异常。
是否有解决方法?
更新
按要求添加我的类的相关部分:
public class Options
{
String product_option_id;
String option_id;
String name;
String type;
String required;
List<OptionValue> option_value;
// get set stuff here
public class OptionValue
{
String product_option_value_id;
String option_value_id;
String name;
String image;
String price;
String price_prefix;
// get set stuff here
}
}
2条答案
按热度按时间rmbxnbpk1#
我有一个解决方案给你:)为此,我们应该使用一个自定义的反序列化器。
在让Gson解析json之前,我们应该注册我们的自定义反序列化器:
而现在--只需呼叫:
lc8prwob2#
在我的情况下,具有相同名称的字段是“data”:{}或“data”:[array_with_真实的_data]。因此,来自已接受答案的代码需要稍微修改,如下所示:
希望能有所帮助。