Android Json Gson Prom
i am trying to GSOn for parsing JSON. Here is my code: public class ProgramList { private List programs; public List getPrograms
Solution 1:
What is the problem in my code?
You're trying to deserialize to a Java data structure that does not match the JSON structure. More specifically, you're trying to deserialize to Java that is an object that contains a list from JSON that is a list.
object with list != list
Following is a working example using the same JSON as in the original question.
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.lang.reflect.Type;
import java.net.URI;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
publicclassFoo
{
publicstaticvoidmain(String[] args)throws Exception
{
Gsongson=newGsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
TypeprogramsListType=newTypeToken<List<Program>>() {}.getType();
Readerreader=newInputStreamReader(getJSONData("http://stage.sitv.com/api/v1/getScheduleByDate?date=2011-07-04"));
List<Program> programs = gson.fromJson(reader, programsListType);
System.out.println(gson.toJson(programs));
}
static InputStream getJSONData(String url)
{
DefaultHttpClienthttpClient=newDefaultHttpClient();
URI uri;
InputStreamdata=null;
try
{
uri = newURI(url);
HttpGetmethod=newHttpGet(uri);
HttpResponseresponse= httpClient.execute(method);
data = response.getEntity().getContent();
InputStreammodData= data;
//Log.i("MY INFO", "data: " + slurp(modData));
}
catch (Exception e)
{
e.printStackTrace();
}
return data;
}
}
classProgram
{
private String id;
private String startTime;
private String endTime;
private String showDate;
private String title;
private String episodeTitle;
private String description;
private String duration;
private String showLink;
private String genre;
private String archived;
}
Solution 2:
i suppose the ProgramList objs = gson.fromJson(ScheduleListingReader, ProgramList.class); expects Array, and you pass ScheduleListingReader. What type is ScheduleListingReader?
Check this out GSON
Post a Comment for "Android Json Gson Prom"