我使用Jackson在Java中序列化对象。我构建了一个对象,现在我希望得到一个“无根”的JSON,如:
{
"requestHeader": {
"specVersion":"1.2",
"customerId":"123123"
},
"someThingElse": "123"
}
此处,requestHeader
和someThingElse
位于同一根级别。
使用此代码,我被迫设置密钥:
import com.fasterxml.jackson.databind.ObjectMapper;
...
ObjectNode response = mapper.createObjectNode();
response.set("unwantedRootKey", data);
这导致了我不想要的额外根级别。
{
"unwantedRootKey": {
"requestHeader": {
"specVersion":"1.2",
"customerId":"123123"
},
"someThingElse": "123"
}
}
如何以串行方式添加数据,因此不能创建树而是森林呢? (我可以砍掉最后一根弦但是......)
答案 0 :(得分:0)
感谢Marc B的评论,我尝试了很明显:只需在根级别设置多个条目:
ObjectMapper mapper = new ObjectMapper();
ObjectNode response = mapper.createObjectNode();
response.set("requestHeader", mapper.valueToTree(data.getRequestHeader()));
response.set("someThingElse", mapper.valueToTree(data.getSomethingElse()));
我今天太困了,因为只看到树而错过了森林......