通过GSON将jsonString转换为列表

时间:2017-09-01 16:57:33

标签: android arraylist gson

我已将jsonArray转换为字符串:

[{"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":""}]

现在我想把它转换为Gson的pojo java类List<EventData>

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

notifyParcel.setEventData(result);

这是我的pojo课程:

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;
}
}

我犯了这个错误:

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

问题是什么?

1 个答案:

答案 0 :(得分:2)

在您的JSON示例Children中定义为字符串:"Children": ""。但是期待Array a.e. []

要摆脱此错误,您可以将"Children": ""替换为"Children": []或尝试删除"Children": ""