Я использую eXist-db 4.7.0 и хочу сохранить результат XQuery в формате JSON.
В настоящее время у меня есть XQuery, который возвращает JSON с использованием параметров сериализации:
xquery version "3.1";
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare namespace json = "http://www.json.org";
declare option output:method "json";
declare option output:media-type "application/json";
let $result as node() := element root {
attribute json:array {"yes"},
element data {
attribute at1 {"1"},
attribute at2 {"1"},
element data1 {
"test3"
}
}
}
return
$result
, который возвращает хороший JSON-контент:
[
{
"data": {
"at1": "1",
"at2": "1",
"data1": "test3"
}
}
]
Теперь я хочу сохранить полученный JSON непосредственно в БД. Я пытался заменить предложение return $result
на
return
xmldb:store (
'/db/services',
'test1.json',
$result
)
но результат сохраняется как
<root xmlns:json="http://www.json.org" json:array="yes">
<data at1="1" at2="1">
<data1>test3</data1>
</data>
</root>
Установка типа MIME на application/json
ничего не изменила:
return xmldb:store(
'/db/services',
'test1.json',
$result,
'application/json'
)
Что я пропускаю или делаю неправильно?