JSONオブジェクトをGSONでPOJOに変換しようとしています。エラー/例外は発生しませんが、ラッパー クラスの List オブジェクトは最終的にはまだ null です。どんなアイデアも私が間違っていることです
JSON 文字列
{
"location":[
{
"id":"1",
"locationName":"Location 1",
"eventType":[
{
"id":"1",
"eventName":"Event 1"
},
{
"id":"2",
"eventName":"Event 2"
},
{
"id":"3",
"eventName":"Event 3"
}
]
},
{
"id":"2",
"locationName":"Location 2",
"eventType":[
{
"id":"4",
"eventName":"Event 4"
},
{
"id":"5",
"eventName":"Event 5"
},
{
"id":"6",
"eventName":"Event 6"
}
]
},
{
"id":"3",
"locationName":"Location 3",
"eventType":[
{
"id":"7",
"eventName":"Event 7"
},
{
"id":"8",
"eventName":"Event 8"
},
{
"id":"9",
"eventName":"Event 9"
}
]
}
]
}
GSON で使用される Wrapper クラス
public class LocationWrapper {
public List<Location> locationList;
public List<Location> getLocationList() {
return locationList;
}
public void setLocationList(List<Location> locationList) {
this.locationList = locationList;
}
}
ロケーション POJO
public class Location {
private long id;
private String locationName;
private List<EventType> eventTypeList;
public Location() {
}
public Location(long id, String locationName, ArrayList<EventType> eventTypeList) {
this.id = id;
this.locationName = locationName;
this.eventTypeList = eventTypeList;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getLocationName() {
return locationName;
}
public void setLocationName(String locationName) {
this.locationName = locationName;
}
public List<EventType> getEventTypeList() {
return eventTypeList;
}
public void setEventTypeList(List<EventType> eventTypeList) {
this.eventTypeList = eventTypeList;
}
}
イベントタイプ POJO
public class EventType {
private long id;
private String eventName;
public EventType() {
}
public EventType(long id, String eventName) {
this.id = id;
this.eventName = eventName;
}
public EventType(int id, String eventName) {
this.id = id;
this.eventName = eventName;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
}
私が使っている方法
private void parseGSONfile(String fileName) {
Gson gson = new Gson();
//getting string from file, you can insert the above string here
String json = new JSONParser().getJSONStringFromFile(fileName);
List<Location> locationList;
LocationWrapper locationWrapper = null;
try {
locationWrapper = gson.fromJson(json, LocationWrapper.class);
} catch (Exception e) {
}
//here the contained object locationList is still null
locationList = locationWrapper.getLocationList();
}