【发布时间】:2020-06-12 20:11:46
【问题描述】:
社区! 我从一些 API 得到以下 JSON 响应:
[
[
[
{
"key": [
"1",
"test1"
],
"value": 1582890257944
},
{
"key": [
"2",
"test2"
],
"value": 1582888081654
},
{
"key": [
"3",
"test3"
],
"value": 1582884771691
}
]
]
]
我应该创建类来将此 JSON 映射到 Java 类 以前我得到以下 JSON:
[
{
"key": [
"test1"
],
"value": 1
},
{
"key": [
"test2"
],
"value": 2
}
]
对于这个 JSON,我创建了一个简单的类:
public class SomeClass {
private List<String> key;
private int value;
}
Jackson 正确地映射了它,没有任何问题...
请帮助我,我需要什么样的课程结构? 我试着写这样的东西:
List<String> params = new ArrayList<>();
params.add("1");
params.add("test1");
SomeClass someClass = new SomeClass();
someClass.setKey(params);
someClass.setValue(1L);
List<SomeClass> arrays = new ArrayList<>();
arrays.add(someClass);
arrays.add(someClass);
List<List<SomeClass>> arrayLists = new ArrayList<>();
arrayLists.add(arrays);
List<List<List<SomeClass>>> threeLists = new ArrayList<>();
threeLists.add(arrayLists);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String prettyJson = gson.toJson(threeLists);
System.out.println(prettyJson);
并且得到了与我从响应中得到的相同的 JSON... 我应该使用下一个结构创建类吗?
List<List<List<String>>> key;
long value;
但我从杰克逊那里得到了错误:
线程“main”com.fasterxml.jackson.databind.exc.MismatchedInputException 中的异常:无法从 START_ARRAY 令牌中反序列化 main.entity.SomeClass 的实例
在 [来源:(StringReader);行:2,列:5](通过引用链:java.lang.Object[][0])
【问题讨论】:
标签: java json jackson mapping objectmapper