Как получить каждое поле документа json в XQUERY Marklogic?

#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")