Aura 2.0
unread,Nov 30, 2010, 4:17:50 AM11/30/10Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to google-gson
Hi,
I have the following JsonArray
[ {"uid":626335,
"affiliations":[{"status":"ikas","nid":16,"name":"Mu","year":
2005,"type":"college"}],
"name":"Juanita Vazquez"},
{"uid":635,
"affiliations":[],
"name":"Marcos Landa"} ]
I also have an Affiliation Java class with String variables for
"status", "nid", "name", "year" and "type" and their corresponding
getters/setters. And a User class with String variables for "uid" and
"name" and an Affiliation type variable "affiliations" (and getter/
setters).
When I try the following it works fine if the JSONs only have simple
values like "uid" or "name", but for nested JSONs like "affiliations"
I got a JsonParseException.
try {
for (int i=0;i<arrayJson.length();i++){
element = arrayJson.get(i).toString();
User u = (User)gson.fromJson(element, User.class);
list.add(u);
}
} catch (JSONException e) { e.printStackTrace(); }
Exception in thread "main" com.google.gson.JsonParseException:
Expecting object found: [{"status":"ikas","nid":16,"name":"Mu","year":
2005,"type":"college"}]
at
com.google.gson.JsonObjectDeserializationVisitor.visitFieldUsingCustomHandler(JsonObjectDeserializationVisitor.java:
99)
at
com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:
158)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:
131)
at
com.google.gson.JsonDeserializationVisitor.visitChild(JsonDeserializationVisitor.java:
107)
at
com.google.gson.JsonDeserializationVisitor.visitChildAsObject(JsonDeserializationVisitor.java:
95)
at
com.google.gson.JsonObjectDeserializationVisitor.visitObjectField(JsonObjectDeserializationVisitor.java:
61)
at
com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:
164)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:
131)
at
com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:
73)
at
com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:
51)
at com.google.gson.Gson.fromJson(Gson.java:568)
at com.google.gson.Gson.fromJson(Gson.java:515)
at com.google.gson.Gson.fromJson(Gson.java:484)
at com.google.gson.Gson.fromJson(Gson.java:434)
at com.google.gson.Gson.fromJson(Gson.java:406)
...................
I traced the error back to a call of isJsonObject() method that
returns false for [{"status":"ikas","nid":16,"name":"Mu","year":
2005,"type":"college"}]. Isn't it a correct JsonObject?? I'm a
little confused here.
Thank you in advance.