gpt4 book ai didi

Java Jackson 解析动态 JSON 对象

转载 作者:行者123 更新时间:2023-11-29 04:34:25 24 4
gpt4 key购买 nike

处理具有以下结构的 JSON 对象的最佳方法是什么:

{
"Parameters": {
"0": {
"some key 0": "some value 0"
},
"1": {
"some key 1": "some value 1"
},
"2": {
"some key 2": "some value 2"
},
....
"n": {
"some key n": "some value n"
}
}

它包含从 0 到 n(例如 100)的属性,每个属性都是一个具有单个键值的对象。看起来所有的键都不一样。

是否可以将其转换为Parameter列表,其中每个参数都有下一个结构:

public class Parameter {
String key;
String value;
}

在 jackson 中处理这个问题的最佳方法是什么?

最佳答案

如果键是动态的,那么我们可以使用 @JsonAnySetter 注释。

你可以尝试这样的事情:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);

Parameters parameters = mapper.readValue(jsonData, Parameters.class);

Parameter 类的内容是:

@JsonRootName("Parameters")
class Parameters {
private List<Map<String, String>> parameters = new ArrayList<Map<String, String>>();

@JsonAnySetter
public void setDynamicProperty(String name, Map<String, String> map) {
parameters.add(map);
}

public List<Map<String, String>> getParameters() {
return parameters;
}

public void setParameters(List<Map<String, String>> parameters) {
this.parameters = parameters;
}

}

关于Java Jackson 解析动态 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42294823/

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