如何使用 XQuery 过滤 JSON 文档?

How to filter JSON document using XQuery?

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

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

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

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

我是处理JSON文档的新手,请帮忙。

提前致谢。

不确定这是否符合您的需求,但像这样的东西会起作用:

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!