gpt4 book ai didi

java - 如何将 JSON 数组转换为 ArrayList?

转载 作者:行者123 更新时间:2023-12-02 11:20:39 24 4
gpt4 key购买 nike

我正在从数据库中获取一个如下所示的字符串

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

最佳答案

这是因为您尝试创建 StringArrayList,但 JSON 中有对象,而不是字符串。尝试更改此行:

Type listType = new TypeToken<ArrayList<String>>() {}.getType();

对于这样的事情:

Type listType = new TypeToken<ArrayList<ChatMessage>>() {}.getType();

假设 Gson 知道如何反序列化您的 ChatMessage 类,这应该可以工作。

关于java - 如何将 JSON 数组转换为 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49950692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com