gpt4 book ai didi

java - JsonString 列表到用户对象列表的转换

转载 作者:行者123 更新时间:2023-12-01 23:30:24 26 4
gpt4 key购买 nike

不是 How to use Jackson to deserialise an array of objects 的重复项.

在列表中,项目是双引号内的字符串。

我正在尝试将 jsonString 消息列表转换为 UserDefined 对象列表。我有这样的输入。

[
"{\"id\":\"5\",\"type\":\"abc\",\"innerObject\":{\"id\":\"8\"}}"
]

如何将此列表转换为 MyClass 的列表。

class MyClass{
String id;
String type;
Inner inner;
//getters and setters
}
class Inner{
String id;
//getters and setters
}

我已经尝试过

objectMapper.readValue(jsonFormattedString, new TypeReference<List<MyClass>>(){});

还有这个

Type listType = new TypeToken<ArrayList<MyClass>>() {}.getType();
myList = new Gson().fromJson(jsonFormattedString, listType);

但不工作。

预期输出为

[{"id":"5","type":"abc","innerObject":"8"}]

最佳答案

对于ObjectMapperreadValue方法,第二个参数应该是类而不是类实例。例如,如果这是单个项目,您将调用 readValue,如下所示:

objectMapper.readValue(jsonFormattedString, TransEvent.class);

对于通用列表,可以通过以下任一方式完成:

// list
objectMapper.readValue(jsonFormattedString, new TypeReference<List<TransEvent>>(){});

// list
objectMapper.readValue(jsonFormattedString, objectMapper.getTypeFactory().constructCollectionType(List.class, TransEvent.class));

// array
TransEvent[] transEvents = objectMapper.readValue(jsonFormattedString, TransEvent[].class);

关于java - JsonString 列表到用户对象列表的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58292392/

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