gpt4 book ai didi

java - 如何使用 Jackson 解析具有不同类型的无名数组

转载 作者:行者123 更新时间:2023-11-30 05:25:43 26 4
gpt4 key购买 nike

我有一些 json 数据,看起来像

"value": [ 1572553480.732, "118" ]

解析器因“无法构造 Value 实例(不存在像默认构造那样的创建者):没有双/双参数构造函数/工厂方法来从 Number 值 (1.572553780732E9) 反序列化”而窒息”

我的数据类如下所示:

public class Value {
private double uTime;
private String count;
public Value() { super(); }
public Value(double uTime, String count) {...}
// also getters and setters for both
}

最佳答案

您可以将@JsonFormat注释与JsonFormat.Shape.ARRAY形状一起使用:

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonPathApp {

public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();

String json = "{\"value\": [ 1572553480.732, \"118\" ]}";
System.out.println(mapper.readValue(json, Root.class));
}
}

class Root {

@JsonFormat(shape = JsonFormat.Shape.ARRAY)
private Value value;

// getters, setters, toString
}

上面的代码打印:

Root{value=Value{uTime=1.572553480732E9, count='118'}}

关于java - 如何使用 Jackson 解析具有不同类型的无名数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58662416/

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