我的JSON响应如下:
{
"General": {
"Code": "xyz",
"People": {
"0": {
"Name": "abc"
},
"1": {
"Name": "def..."
},
"AddressData": {
"Street": 123,
"ZIP": 456
}
}
}
}
对象1和2是相同的对象。它们总是具有相同的属性。但是,它们可能不仅仅是两个对象,这取决于我何时拉取JSON。我真的不确定如何使用Gson对数据进行反序列化。
我已尝试使用:
@SerializedName("People")
@Expose
private People[] People;
人员所在位置:
private class People {
@SerializedName("Name")
@Expose
private String name;
public People(String name){
this.name = name
}
}
然而,我得到的错误
java.lang.IllegalStateException:应为开始_ARRAY,但在第1行为BEGIN_OBJECT
我的普通类是:
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class General {
@SerializedName("Code")
@Expose
private String code;
@SerializedName("People")
@Expose
private People[] people;
@SerializedName("AddressData")
@Expose
private AddressData addressData;
private class People {
@SerializedName("Name")
@Expose
private String name;
public People(String name){
this.name = name;
}
}
private class AddressData {
@SerializedName("Street")
@Expose
private String street;
@SerializedName("ZIP")
@Expose
private String zip;
}
}
2条答案
按热度按时间fnvucqvd1#
编写一个自定义序列化器。下面是问题中JSON的完整示例。
63lcw9qa2#
对象人是一张Map。对象1和2是关键。我现在要睡觉了:)