![](/img/trans.png)
[英]How do I Convert JSON Array into ArrayList<ClassType> in Java?
[英]How do I convert a JSON array to an ArrayList?
我從一個看起來像這樣的數據庫中獲取一個字符串
[{"messageContent":"Good morning Christine! My name is Oso, it\u0027s
beary nice to meet you
:3","msgType":"MSG_TYPE_RECEIVED","statusCode":0,"timeString":"10:31"},
{"messageContent":"Good morning Christine! My name is Oso, it\u0027s
beary nice to meet you
:3","msgType":"MSG_TYPE_RECEIVED","statusCode":0,"timeString":"10:31"}
它以ArrayList開頭,但是我必須將其轉換為字符串以存儲在數據庫中。
我需要將其轉換回去。 我本來打算使用此功能,但似乎不起作用。
public static ArrayList<ChatMessage> fromString(String value) {
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
return new Gson().fromJson(value, listType);
}
當我嘗試運行該函數時出現此錯誤。
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 3 path $[0]
這是因為您嘗試創建String
的ArrayList
,但是您擁有對象,而不是JSON中的字符串。 嘗試更改此行:
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
對於這樣的事情:
Type listType = new TypeToken<ArrayList<ChatMessage>>() {}.getType();
假設Gson
知道如何反序列化ChatMessage
類,那應該可以工作。
您的數據庫字符串末尾缺少JSON數組右括號[ ]
。
gson
類型參數錯誤。 您需要一個ArrayList<ChatMessage>
但是您使用了ArrayList<String>
。
更換
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
同
Type listType = new TypeToken<ArrayList<ChatMessage>>() {}.getType();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.