I need some help to deserialize this JSON Response to array which I can use further
Json Array response that I am getting has two entities tradingHours and shutDownHours
Creating a Json reader for the Json Response and , looping in the reader until I get to shutDown node and then try to get the details using ShutdownHours class
"I cannot create a gson object from JSON response using the Trading Hours class , what am I missing here
JSON RESPONSE
{
"licenceNumber": "123319",
"tradingHours": [
{
"effectiveStartDate": "1947-12-01T00:00:00",
"effectiveEndDate": "2008-06-30T00:00:00",
"details": [
{
"day": "Monday",
"startTime": "5:00 AM",
"endTime": "12:00 midnight"
},
{
"day": "Tuesday",
"startTime": "5:00 AM",
"endTime": "12:00 midnight"
},
{
"day": "Wednesday",
"startTime": "5:00 AM",
"endTime": "12:00 midnight"
},
{
"day": "Thursday",
"startTime": "5:00 AM",
"endTime": "12:00 midnight"
},
{
"day": "Friday",
"startTime": "5:00 AM",
"endTime": "12:00 midnight"
},
{
"day": "Saturday",
"startTime": "5:00 AM",
"endTime": "12:00 midnight"
},
{
"day": "Sunday",
"startTime": "10:00 AM",
"endTime": "11:00 PM"
},
{
"day": "Good Friday",
"startTime": "10:00 AM",
"endTime": "10:00 PM"
},
{
"day": "Christmas Day",
"startTime": "10:00 AM",
"endTime": "10:00 PM"
},
{
"day": "December 31st",
"startTime": "10:00 AM",
"endTime": "10:00 PM"
}
]
},
{
"effectiveStartDate": "2008-07-01T00:00:00",
"effectiveEndDate": null,
"details": [
{
"day": "Monday",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "Tuesday",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "Wednesday",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "Thursday",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "Friday",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "Saturday",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "Sunday",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "Good Friday",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "December 24th",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "Christmas Day",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
},
{
"day": "December 31st",
"startTime": "5:00 AM",
"endTime": "5:00 AM"
}
]
}
],
"shutdownHours": [
{
"effectiveStartDate": "2003-02-27T00:00:00",
"isPrimary": "Y",
"details": [
{
"day": "Monday",
"startTime": "2:00 AM",
"endTime": "8:00 AM"
},
{
"day": "Tuesday",
"startTime": "2:00 AM",
"endTime": "8:00 AM"
},
{
"day": "Wednesday",
"startTime": "2:00 AM",
"endTime": "8:00 AM"
},
{
"day": "Thursday",
"startTime": "2:00 AM",
"endTime": "8:00 AM"
},
{
"day": "Friday",
"startTime": "2:00 AM",
"endTime": "8:00 AM"
},
{
"day": "Saturday",
"startTime": "2:00 AM",
"endTime": "8:00 AM"
},
{
"day": "Sunday",
"startTime": "2:00 AM",
"endTime": "8:00 AM"
},
{
"day": "PublicHoliday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
}
]
},
{
"effectiveStartDate": "1947-12-01T00:00:00",
"isPrimary": null,
"details": [
{
"day": "Monday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
},
{
"day": "Tuesday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
},
{
"day": "Wednesday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
},
{
"day": "Thursday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
},
{
"day": "Friday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
},
{
"day": "Saturday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
},
{
"day": "Sunday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
},
{
"day": "PublicHoliday",
"startTime": "4:00 AM",
"endTime": "10:00 AM"
}
]
}
]
}
Java CODE
public static TradingHours readTradingHours(JsonReader reader) throws IOException {
ShutdownHours tradingHours = null;
reader.beginObject();
Gson gson = new Gson();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("tradingHours")) {
reader.beginArray();
tradingHours = gson.fromJson(reader, ShutdownHours.class);
}
else {
reader.skipValue();
}
}
return tradingHours;
}
TRADING HOURS CLASS , This class is used to create an object and is being used to create gson
package com.tattsgroup.site.entity.model;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import java.util.List;
public class TradingHours implements Serializable {
@SerializedName("effectiveStartDate")
private String effectiveStartDate;
@SerializedName("effectiveEndDate")
private String getEffectiveEndDate;
@SerializedName("details")
private List<TradingHourDetails> tradingHoursDetails;
public TradingHours() {
}
public TradingHours(String effectiveStartDate, String getEffectiveEndDate, List<TradingHourDetails> tradingHoursDetails) {
this.effectiveStartDate = effectiveStartDate;
this.getEffectiveEndDate = getEffectiveEndDate;
this.tradingHoursDetails = tradingHoursDetails;
}
public String getEffectiveStartDate() {
return effectiveStartDate;
}
public void setEffectiveStartDate(String effectiveStartDate) {
this.effectiveStartDate = effectiveStartDate;
}
public String getGetEffectiveEndDate() {
return getEffectiveEndDate;
}
public void setGetEffectiveEndDate(String getEffectiveEndDate) {
this.getEffectiveEndDate = getEffectiveEndDate;
}
public List<TradingHourDetails> getTradingHoursDetails() {
return tradingHoursDetails;
}
public void setTradingHoursDetails(List<TradingHourDetails> tradingHoursDetails) {
this.tradingHoursDetails = tradingHoursDetails;
}
}