gpt4 book ai didi

java - 使用 Jackson 解析嵌套 JSON 数组

转载 作者:行者123 更新时间:2023-12-01 09:06:16 29 4
gpt4 key购买 nike

我使用 jacson 解析以下 JSON 数组

[
{
"target": "something",
"datapoints": [
[
null,
1482223380
]]}]

进入这个 POJO

public class Response {

private String target;
private List<List<Double>> datapoints;

public String getTarget() {
return target;
}

public void setTarget(String target) {
this.target = target;
}

public List<List<Double>> getData() {
return datapoints;
}

public void setData(List<List<Double>> data) {
this.datapoints = data;
}
}

使用以下代码

objectMapper.readValue(json, new TypeReference<List<Response>>() {});

这部分有效,外部列表目标是正确的,但是数据点为空。

我的初始解决方案取自this回答。

我的问题是,为什么数据点没有按预期解析?这与数组内的空值有关吗?

最佳答案

您可以为 datapoints 字段编写自定义 JsonDeserializer

class MyDatapointsDeserializer extends JsonDeserializer<List<List<Double>>> {

private static final TypeReference<List<List<Double>>> TYPE_REF =
new TypeReference<List<List<Double>>>() {};

@Override
public List<List<Double>> deserialize(
JsonParser jp, DeserializationContext ctxt) throws IOException {
return jp.readValueAs(TYPE_REF);
}
}

然后相应地注释该字段。

@JsonDeserialize(using = MyDatapointsDeserializer.class)
private List<List<Double>> datapoints;

关于java - 使用 Jackson 解析嵌套 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41260454/

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