gpt4 book ai didi

java - 如何使用 jackson 获取 json 响应?

转载 作者:行者123 更新时间:2023-12-01 09:40:19 25 4
gpt4 key购买 nike

我是 jackson 的新手,我有一个示例json输出需要使用 jackson 来获取此数据作为响应,我为此创建了pojo类,因为我知道这种问题可以通过简单的json来实现,但我不知道用 jackson 来做这件事。请有人提供一些帮助。

这是我的示例 json 数据 -

{
"apmmetrics": [
{
"metric": "Somevalue",
"level": "somevalue",
"data": [
{
"host": "someValue",
"instance": "someValue",
"app": "someValue",
"series": [
{
"bucket": "201607210949",
"max": 300,
"min": 15,
"avg": 57.55,
"total": 1899,
"count": 33
},
{
"bucket": "201607210948",
"max": 437,
"min": 13,
"avg": 93.5,
"total": 13464,
"count": 144
},
{
"bucket": "201607210947",
"max": 431,
"min": 13,
"avg": 86.25,
"total": 28376,
"count": 329
}
]
}
]
}
]}

这些是我的 pojo 类--

public class MetricsCollection {

private String metric;
private String level;
private List<MetricsGroup> data;
private transient Map<String, MetricsGroup> meta;

}

public class MetricsGroup {

private String host;
private String instance;
private String app;
private List<GenericMetrics> series;
private transient Map<String, GenericMetrics> metaMap;
}


public class BaseMetrics implements Serializable {
private static final long serialVersionUID = -3249688349785265214L;
protected double max = 0.0;
protected double min = 0.0;
protected double avg = 0.0;
protected double total = 0.0;
protected long count = 0;
}


public class GenericMetrics extends BaseMetrics {

private static final long serialVersionUID = -9057601499394607167L;
private String bucket;
private transient long rc = 0;

}

请让我知道如何实现这一目标。真的会很感激。提前致谢。

最佳答案

您应该创建另一个类 (rootPojo),其中包含 MetricsCollection 的名为 apmmetrics 的属性数组。然后生成json:mapper.writeValueAsString(rootPojo);

编辑:

或者只是:

final ObjectMapper mapper = new ObjectMapper();
final Map<String, List<MetricsCollection>> dataMap = ...
dataMap.put("apmmetrics", listOfMetricsCollection);
System.out.println(mapper.writeValueAsString(dataMap));

关于java - 如何使用 jackson 获取 json 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38510491/

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