【发布时间】:2020-02-06 02:20:07
【问题描述】:
不是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"}]
【问题讨论】:
-
你试过 Gson 了吗?
-
是的。我试过这个。更新查询。
-
你能用getter和setter更新完整的类吗
-
jsonString里面有innerObject,但是MyClass里面的属性叫做inner而不是innerObject。难道是它不起作用的问题吗?
-
但错误甚至在此之前,因为输入列表包含带双引号的字符串。