繁体   English   中英

在Jackson中没有根密钥的情况下将对象序列化为JSON

[英]Serialize object to JSON without a root key in Jackson

我使用Jackson来序列化Java中的对象。 我建立了一个对象,现在我想要一个“无根” JSON,例如:

{
    "requestHeader": {
       "specVersion":"1.2",
       "customerId":"123123"
     },
     "someThingElse": "123"
}

在这里, requestHeadersomeThingElse位于同一根级别。

使用此代码,我被迫设置一个密钥:

import com.fasterxml.jackson.databind.ObjectMapper;
...
ObjectNode response = mapper.createObjectNode();
response.set("unwantedRootKey", data);

这导致了我不需要的额外根级别。

{
    "unwantedRootKey": {
          "requestHeader": {
              "specVersion":"1.2",
              "customerId":"123123"
          },
          "someThingElse": "123"
    }
}

我该如何以串行方式添加数据,从而可以说不是创建树而是创建森林? (我可以将最后一个字符串切碎,但是...)

感谢Marc B的评论,我尝试了显而易见的方法:只需在根级别设置多个条目即可:

ObjectMapper mapper = new ObjectMapper();
ObjectNode response = mapper.createObjectNode();
response.set("requestHeader", mapper.valueToTree(data.getRequestHeader()));
response.set("someThingElse", mapper.valueToTree(data.getSomethingElse()));

今天我太困了,错过了只看树的森林。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM