#json #xquery #marklogic
#json #xquery #marklogic
Вопрос:
Как получить каждое поле документа json в XQUERY Marklogic?
let $doc :=
{
"field1" :'t',
"field2" : 'th',
"filed4": 'the'
}
return
$doc//??,
{
"New Filed" : "Added"
}
Итак, как мы можем получить результат, как показано ниже?
{ "field1" :'t', "field2" : 'th', "filed4": 'the' ,"New Filed" : "Added"}
Ответ №1:
Один из подходов: используйте xdmp:from-json()
для преобразования неизменяемого узла JSON в изменяемую карту, а затем задайте поле:
return xdmp:from-json($doc) => map:with("NewField", "Added")
Для получения более подробной информации см.: https://docs.marklogic.com/xdmp:from-json
Надеюсь, это поможет,
Ответ №2:
Объект JSON на самом деле просто специализированная карта. Таким образом, вы можете использовать операторы сопоставления, такие как
оператор объединения:
let $doc := object-node
{
"field1" :'t',
"field2" : 'th',
"filed4": 'the'
}
return
$doc map:entry("NewField", "added")