【发布时间】:2016-10-24 08:51:42
【问题描述】:
假设我们的 json 看起来像
{
"name":"abc",
"lastName":"xyz",
"description":"aaaaa aaaa",
"dob":11-10-1988,
"workInformation":[
{
"address":"kolkata",
"workFor":"vvv Pvt Ltd",
"reference" : [
{
"refName" : "ttt",
"refId" : "12345"
},
{
"refName" : "sss",
"refId" : "23412"
}
]
},
{
"address":"bangalore",
"workFor":"www Pvt Ltd",
"reference" : [
{
"refName" : "rrr",
"refId" : "43434"
},
{
"refName" : "yyyy",
"refId" : "34213"
}
]
},
{
"address":"delhi",
"workFor":"sss Pvt Ltd",
"reference" : [
{
"refName" : "qqqq",
"refId" : "76767"
},
{
"refName" : "gggg",
"refId" : "65432"
}
]
}
]
}
我已经尝试过 DocumentPatchBuilder 的 insertFragment。使用它我可以在 json 属性之前/之后更新。但是我必须在数组类型的属性 workInformation 中插入。这是我尝试过的 insertFragment 示例 -
DocumentPatchBuilder pb = docMgr.newPatchBuilder();
pb.pathLanguage(DocumentPatchBuilder.PathLanguage.JSONPATH);
ObjectMapper mapper = new ObjectMapper();
pb.insertFragment("workInformation", Position.BEFORE,mapper.createObjectNode().put("hello", "hai"));
我想使用 java api 在 workInformation 部分中插入下面提到的数据 -
{
"address":"Mumbai",
"workFor":"zzz Pvt Ltd"
}
请告诉我怎么做。
感谢阅读。
【问题讨论】:
-
是否可以在服务器端 JavaScript 中执行此操作?然后是一个简单的
var x = fn.doc(...); x['workInformation'].push({'address': ...}); xdmp.save(...)。 SJS 与 JSON 配合得非常好。 -
我想用 Java API 来做。如果您可以参考任何示例/文档,那将会很有帮助。
标签: json jackson marklogic marklogic-8