Although there are several threads on this topic.. please do not mark this as duplicate.
My pojo looks like this :
public class sample { public sample() { // TODO Auto-generated constructor stub } private String instructions; private String resource; private List<Map<String,String>> fields; private String taskid; private List<Map<String,String>> answer; public String getTaskid() { return taskid; } public void setTaskid(String taskid) { this.taskid = taskid; } public String getInstructions() { return instructions; } public void setInstructions(String instructions) { this.instructions = instructions; } public String getResource() { return resource; } public void setResource(String resource) { this.resource = resource; } public List<Map<String,String>> getFields() { return fields; } public void setFields(List<Map<String,String>> fields) { this.fields = fields; } public List<Map<String,String>> getAnswer() { return answer; } public void setAnswer(List<Map<String,String>> answer) { this.answer = answer; }}
I am doing a httpget and the result is an array of Json objects I try to typecast it to sample but it gives an exception.
the deserialization snippet is as follows
sample[] temp = gsonObj.fromJson(response, sample[].class);
the exception i get is
java.lang.RuntimeException: Unable to invoke no-args constructor for class [sample;. Register an InstanceCreator with Gson for this type may fix this problem. at com.google.gson.MappedObjectConstructor.constructWithAllocators(MappedObjectConstructor.java:68) at com.google.gson.MappedObjectConstructor.construct(MappedObjectConstructor.java:52) at com.google.gson.JsonObjectDeserializationVisitor.constructTarget(JsonObjectDeserializationVisitor.java:42) at com.google.gson.JsonDeserializationVisitor.getTarget(JsonDeserializationVisitor.java:60) at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:104) at com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:76) at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:54) at com.google.gson.Gson.fromJson(Gson.java:551) at com.google.gson.Gson.fromJson(Gson.java:498) at com.google.gson.Gson.fromJson(Gson.java:467) at com.google.gson.Gson.fromJson(Gson.java:417) at com.google.gson.Gson.fromJson(Gson.java:389) at HTTPClientUtils.getResultsFromMobileWorks(HTTPClientUtils.java:327)
Can you please let me know where i am making the mistake ??
Sample
a nested class? Didn't the constructor throw an exception? – maaartinus Oct 17 '12 at 5:41