java - 我如何在 Java 的 Jackson 库中打印对象名称作为 JSON 的一部分?
问题描述
我正在尝试确定如何使用 Java 的 Jackson 库打印出如下所示的 JSON:
{
"status": {
{
"busStatus" : {
"status" : null,
"transactions" : "0",
"retries" : "0",
"failures" : "0"
}
}
}
}
我在那里 95%,但目前没有打印最外面的对象。这是我目前正在输出的内容:
{
"busStatus" : {
"status" : null,
"transactions" : "0",
"retries" : "0",
"failures" : "0"
}
}
我有一个看起来像这样的 Java 类:
public class DataClass {
public StatusData status = new StatusData();
public StatusConfig config = new StatusConfig();
public class StatusData {
public SerialStatus busStatus = new SerialStatus();
}
public class StatusConfig {
}
public class SerialStatus {
public String status = null;
public String transactions = "0";
public String retries = "0";
public String failures = "0";
}
}
我正在使用以下代码将此类打印到 json:
private DataClass internalData;
ObjectMapper mapper = new ObjectMapper();
status = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(internalData.status);
有没有一种方法可以配置 Jackson 以将其序列化为 JSON 的对象的名称打印出来?
解决方案
要实现您想要的,您需要打印DataClass
而不是StatusData
. 如下所示:
private DataClass internalData = <initialize>;
ObjectMapper mapper = new ObjectMapper();
String data =
mapper.writerWithDefaultPrettyPrinter().writeValueAsString(internalData);
推荐阅读
- image - 在flutter中,如何多次使用网络图像而无需再次调用?
- huggingface-transformers - 使用数据集、标记器和火炬数据集和数据加载器进行动态标记化
- algorithm - 使用分治法查找序列中的数字
- javascript - 在 typescript 中使用 try-catch 包围 super()
- html - 如何拥有多个不相互重叠的背景图像?
- python - 在熊猫数据框中设置列宽
- python - Python pickler.load() 抛出 FileNotFoundError
- azure - 如何创建 AzureML 环境并添加所需的包
- swift - 如何在不使用类型名称的情况下引用静态 Swift 结构或类变量?
- kotlin - 如何在通过 id API 查找时,使用 Spring webFlux 发送 HTTP 状态为 200 的正文或 HTTP 状态为 204 的空正文?