2017-09-01 43 views
2
列出

我已经转换一个jsonArray到字符串:转换jsonString通过GSON

[{"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 $ 

是什么问题?

回答

2

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

为了摆脱这种错误的,你可以用"Children": []替代"Children": ""或尝试在所有

+0

我改变它删除"Children": "":http://codepad.org/VDkjm3c4。但我得到了这个错误:'期望BEGIN_ARRAY,但是在第1行第87列路径$ [0]。儿童''STRINGS' – sayres

+0

@sayres抱歉队友,错字:它应该是'[]'ae'“Children”:[]' http://www.jsoneditoronline.org/?id=fcab865350cf520e66fb7212dac7da94 –

+0

老兄,这是我保存这个childlern的地方:http://codepad.org/Ab9ONuiP。我能做什么?我不能[]没有“” – sayres