繁体   English   中英

如何在MarkLogic中以编程方式在XQuery中创建JSON?

[英]How do I programmatically create JSON in XQuery in MarkLogic?

我需要在MarkLogic中的XQuery中构建一个JSON节点。 我知道我可以使用xdmp:unquote()从字符串解析成node() 但是,我想以编程方式构建JSON,而不需要丑陋的字符串连接。 我可以使用计算元素构造函数在XQuery中构建XML节点。 JSON节点有类似的东西吗?

JSON在MarkLogic中实现为XML数据模型的扩展。 MarkLogic 8引入了object-nodearray-nodenumber-nodeboolean-nodenull-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()

暂无
暂无

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

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