要从搜索中提取每个json属性值:extracted
我不熟悉json,所以需要一些帮助 我需要获得每个属性的json值,所以当我运行下面的代码时,我会得到文本形式的json要从搜索中提取每个json属性值:extracted,json,marklogic,Json,Marklogic,我不熟悉json,所以需要一些帮助 我需要获得每个属性的json值,所以当我运行下面的代码时,我会得到文本形式的json let $doc := for $sResult in ($result/search:result) let $uri := fn:data($sResult/@uri) let $docElements := $sResult/search:extracted return xdmp:from-json-stri
let $doc :=
for $sResult in ($result/search:result)
let $uri := fn:data($sResult/@uri)
let $docElements := $sResult/search:extracted
return xdmp:from-json-string($docElements/text())
return $doc
以文本格式输出:
[{"title":"xxxxxxxxx"}, {"species":"Animals"}]
[{"title":"yyyyyyyyy"}, {"species":"Animals"}]
所以我想得到类似于$docElements/title/text()
,这样我就可以得到title json属性的值来执行一些字符串操作,然后将它们放回json对象中以获得所需的输出。
所以,不知道怎么做。 < p>修改文档的内容,考虑使用而不是<代码>搜索:SexChar()< /C> > /P> 如果要求在返回到客户机之前获取并修改JSON内容,一种方法是
let $modifiedDocs :=
for $inputDoc in search:resolve-nodes(...query..)
let $tempMap := xdmp:from-json($inputDoc)
let $_ := ... navigate and modify the map ...
return xdmp:to-json($tempMap)
为了完整性,如果目标是修改持久化的JSON文档,则迭代可能类似于以下草图:
for $oldDoc in search:resolve-nodes(...query..)
let $tempMap := xdmp:from-json($inputDoc)
let $_ := ... navigate and modify the map ...
let $newDoc := xdmp:to-json($tempMap)
return xdmp:node-replace($oldDoc, $newDoc)
希望这能有所帮助,感谢您的响应,但我需要提取每个json属性的值以突出显示搜索文本。此外,我不需要更改文档中的任何内容,我必须对json属性的文本执行字符串插入并发送到UI层,不需要更改db文档。请建议。