Marklogic 向使用对象节点构造函数创建的JSON添加新的键值对
我想向使用对象节点构造函数创建的JSON添加一个新的键值对 对象节点:Marklogic 向使用对象节点构造函数创建的JSON添加新的键值对,marklogic,marklogic-8,Marklogic,Marklogic 8,我想向使用对象节点构造函数创建的JSON添加一个新的键值对 对象节点: object-node { "status": "success", "categories": "cat" } 插入新对的XQuery代码: let $outputJson := object-node { "status": "success",
object-node {
"status": "success",
"categories": "cat"
}
插入新对的XQuery代码:
let $outputJson :=
object-node {
"status": "success",
"categories": "cat"
}
return ( map:put($outputJson, "str", "xyz"), $outputJson )
上述表达式失败。有没有办法插入新的一对?令人恼火的是,
对象-节点()
无法按预期进行操作,但对象-节点()
是不可变的
而是使用,它将提供一个专门的可变映射:
let $outputJson :=
json:object()
=> map:with("status", "success")
=> map:with("categories", "cat")
return ( map:put($outputJson, 'str', 'xyz'), $outputJson )
在动态构建json文档时,从json:object开始可能更有意义,但如果需要从数据库中提取json并对其进行操作,这可能是一个有用的技巧:
let $outputJson :=
object-node {
"status": "success",
"categories": "cat"
}
return xdmp:to-json(map:with(xdmp:from-json($outputJson), "str", "xyz"))
嗯 是的,很烦人。如果它得到支持,那会很酷。无论如何,谢谢你的回复。而且,我知道可以使用json:object(),我之所以这样做是因为对象节点方式不起作用。