如何使用 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!
我将以下 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!