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

标签 json xquery marklogic

我需要在 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/

相关文章:

json - 将 JSON 对象转换为 Buffer 并将 Buffer 转换为 JSON 对象

java - 如何在不使用API​​的情况下在android中手动创建复杂的Json结构?

sql - 使用XPath/XQuery过滤XML列上的SQL查询

xml - 使用 XSD 和 XSI 对 XML 文档进行 MarkLogic TDE

php - 如何将方法的结果添加到来自 Php 数组的 SQL 结果 - JSON

json - Postgres,从日期范围选择中每天获取唯一记录

xquery - 如何基于集合获取计数并使用 XQuery 进行多元素词查询?

xml - XQuery:let 和 for 之间的区别

json - 如何使用 MarkLogic XSLT 修改一个 JSON 属性?

logging - MarkLogic - XDMP-NEWSTAMP 异常