Java 如何将JSON数组转换为ArrayList?
我正在从一个数据库中抓取一个字符串,看起来像这样Java 如何将JSON数组转换为ArrayList?,java,json,gson,Java,Json,Gson,我正在从一个数据库中抓取一个字符串,看起来像这样 [{"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
[{"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);
}
这是因为您试图创建一个
String
的ArrayList
,但是您的JSON中有对象,而不是字符串。尝试更改此行:
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
Type listType=new-TypeToken(){}.getType();
对这样的事情:
Type listType = new TypeToken<ArrayList<ChatMessage>>() {}.getType();
Type listType=new-TypeToken(){}.getType();
假设Gson
知道如何反序列化您的ChatMessage
类,那么应该可以工作
]
gson
类型参数错误。您需要ArrayList
,但使用了ArrayList
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
Type listType=new-TypeToken(){}.getType();
与
Type listType=new-TypeToken(){}.getType();
您会认为它至少会尝试执行Object.toString感谢您。我玩了arround函数,忘了将字符串改回ChatMessage
Type listType = new TypeToken<ArrayList<String>>() {}.getType();
Type listType = new TypeToken<ArrayList<ChatMessage>>() {}.getType();