sayres
sayres

Reputation: 381

convert jsonString to list by GSON

I have converted a jsonArray to string :

[{"Key":"Comment","Value":"گواهی پایانکار با شماره ارجاع 2168439 صادر شد","Children":""},{"Key":"Version","Value":"BIZ.SC- Version=8.8.495.1","Children":""},{"Key":"lat","Value":"0","Children":""},{"Key":"lng","Value":"0","Children":""},{"Key":"District","Value":"11","Children":""},{"Key":"ScheduledMessage","Value":"{\"Id\":\"41b02583-1974-4f31-8ba1-c58d035f388b\",\"NotificationId\":\"53a23080-88cf-4256-855c-6ef2a51f2aab\",\"DistributionId\":\"98ee1d58-dd1e-4ef9-b82a-0af2a2a0e9ef\",\"CreationDateTime\":\"\\\/Date(1504277609736)\\\/\",\"ExpirationDateTime\":\"\\\/Date(4070908800000)\\\/\",\"Address\":\"Topics\/Notifications\/Global\",\"FileName\":\"\"}","Children":""}]

now I want convert it to pojo java class by Gson as a List<EventData>

List<EventData> result = GsonUtil.createGson().fromJson(eventArray,
new TypeToken<List<EventData>>() {}.getType());

notifyParcel.setEventData(result);

this is my pojo class:

public class EventData implements Serializable{
private List<Children> Children;
private String Key;
private String Value;

public List<Children> getChildren() {
    return Children;
}

public void setChildren(List<Children> children) {
    Children = children;
}

public String getKey() {
    return Key;
}

public void setKey(String key) {
    Key = key;
}

public String getValue() {
    return Value;
}

public void setValue(String value) {
    Value = value;
}
}

I go this error:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 2 path $

what is the problem?

Upvotes: 2

Views: 243

Answers (1)

Maxim Shoustin
Maxim Shoustin

Reputation: 77904

In your JSON example Children defined as string: "Children": "". But expects Array a.e. []

To get rid of this error, you can replace "Children": "" with "Children": [] or try to remove "Children": "" at all

Upvotes: 2

Related Questions