gpt4 book ai didi

java - Jackson json反序列化以整数(原始数据)作为POJO的关键

转载 作者:行者123 更新时间:2023-11-30 07:09:19 24 4
gpt4 key购买 nike

在其中一个 API 中,我收到以下 Json 响应:您可以在此处查看此响应示例 Sample Json resopnse

{
"histogram" : {
"1" : "12",
"2" : "20",
"3" : "50",
"4" : "90",
"5" : "10"
}
}

为了反序列化此响应,如何编写 POJO 类?

在java中,由于不允许使用数字作为变量名,那么如何将其转换为POJO?

例如,我怎样才能创建这样的东西:

public class MyPOJO {
Histogram histogram;

public static class Histogram {
// I KNOW THIS IS WRONG !!
String 1;
String 2;
String 3;
String 4;
}
}

jackson 是否提供任何注释来处理这些?

最佳答案

对于这个 JSON:

{
"histogram": {
"1": "12",
"2": "20",
"3": "50",
"4": "90",
"5": "10"
}
}

您可以考虑以下方法之一:

使用 Map<String, String>保存值

histogram可以解析成 Map<String, String> :

public class HistogramWrapper {

@JsonProperty("histogram")
private Map<String, String> histogram;

// Getters and setters omitted
}

使用 @JsonProperty 注释的属性

或者,您可以定义 Histogram类并用 @JsonProperty 注释其属性:

public class HistogramWrapper {

@JsonProperty("histogram")
private Histogram histogram;

// Getters and setters omitted
}
@JsonIgnoreProperties(ignoreUnknown = true)
public class Histogram {

@JsonProperty("1")
private String _1;

@JsonProperty("2")
private String _2;

@JsonProperty("3")
private String _3;

@JsonProperty("4")
private String _4;

@JsonProperty("5")
private String _5;

// Getters and setters omitted
}

解析 JSON

要解析 JSON,请执行以下操作:

ObjectMapper mapper = new ObjectMapper();
String json = "{\"histogram\":{\"1\":\"12\",\"2\":\"20\","
+ "\"3\":\"50\",\"4\":\"90\",\"5\":\"10\"}}";

HistogramWrapper wrapper = mapper.readValue(json, HistogramWrapper.class);

关于java - Jackson json反序列化以整数(原始数据)作为POJO的关键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39466719/

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