我有这个json(它比这复杂得多) 问题是“past_ings”属性可能是对象或对象数组。
query: {
count: 2,
created: "2015-11-17T11:44:06Z",
lang: "en-US",
results: {
Scorecard: [
{
past_ings: {
s: {},
d: {}
}
}
]
}
}
query: {
count: 2,
created: "2015-11-17T11:44:06Z",
lang: "en-US",
results: {
Scorecard: [
{
past_ings: [
{
s: {},
d: {}
},
{
s: {}
}
]
}
]
}
}
我使用retrofit和gson,通过使用@SerializedName创建POJO但它不起作用“part_ings”。
我的问题是我可以使用TypeAdapter来序列化一个属性“past_ings”并让默认Gson序列化其余属性吗?因为对所有传入的对象使用TypeAdapter太复杂了。
编辑:我将past_ings定义如下
@Expose
@SerializedName("past_ings")
private List<PastIngs> pastIngses;
我收到此错误com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2241 path $.query.results.Scorecard[0].past_ings
答案 0 :(得分:0)
为什么不在数组中放一个值并序列化呢?
您的past_ings
可能是一个对象数组或一个对象。因此,创建ArrayList
并将您需要的所有内容放入past_ings
。如果有一个值,则ArrayList将使用一个对象序列化为JSONArray
。