如何使用XQuery过滤JSON文档?

时间:2017-09-13 04:02:42

标签: json xpath xquery marklogic marklogic-8

我将以下JSON文档分配给变量$ node:

{ "b": "value",
  "c1": 1,
  "c2": 2,
  "d": "",
  "e": ""
}

我不知道如何获得每个节点。我试过$ node // node()。但没有得到每个单节点。我需要查询这个JSON文档以跳过空节点&插入Marklogic DB,如下所述:

{“b”:“value”,       “c1”:1,       “c2”:2     }

我是处理JSON文档的新手,请提供帮助。

提前致谢。

1 个答案:

答案 0 :(得分:1)

不确定这是否符合您的需求,但这样的方法可行:

let $node := xdmp:unquote('
  { "b": "value",
    "c1": 1,
    "c2": 2,
    "d": "",
    "e": ""
  }
')/node()
return xdmp:to-json(map:new((
  for $property in $node/node()
  where string-length(string($property)) > 0
  return
    map:entry(name($property), data($property))
)))

HTH!