我需要在 MarkLogic 的 XQuery 中建立一个 JSON 节点。我知道我可以使用 xdmp:unquote()
将字符串解析为 node()
.但是,我想以编程方式构建 JSON,没有丑陋的字符串连接。我可以用 computed element constructors在 XQuery 中构建 XML 节点。 JSON 节点有类似的东西吗?
最佳答案
JSON 在 MarkLogic 中实现为 XML 数据模型的扩展。 MarkLogic 8 引入 object-node
, array-node
, number-node
, boolean-node
, 和 null-node
测试和构造函数。因此,在 XQuery 中,您可以使用计算构造函数构建 JSON,就像使用 XML 一样。例如,
object-node {
"key" || fn:string(xdmp:random(100)): array-node { 1, 2, 3 },
"another": object-node { "child": text {'asdf'} },
"lastButNotLeast": boolean-node { fn:true() }
}
将创建 JSON,
{
"key47": [1, 2, 3],
"another": {
"child": "asdf"
},
"lastButNotLeast": true
}
旁白:在 JavaScript 中,您可以使用 JavaScript 语法将类似 JSON 的结构构建为 JavaScript 对象。您可以使用
xdmp.toJSON()
将 JavaScript 对象转换为 JSON 节点。 .但是,大多数需要 JSON 节点的内置函数会自动执行此转换,例如 xdmp.documentInsert()
.
关于json - 如何在 MarkLogic 的 XQuery 中以编程方式创建 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37286491/