Я формирую xml, фрагмент которого -
<cache-properties>
<list-cache-hit-rate>
<units>hits/sec</units>
<value>1.5308452E6</value>
</list-cache-hit-rate>
<list-cache-miss-rate>
<units>misses/sec</units>
<value>25422.167</value>
</list-cache-miss-rate>
<compressed-tree-cache-hit-rate>
<units>hits/sec</units>
<value>970.2339</value>
Обратите внимание, что значение 1.5308452E6
достаточно велико, чтобы значения сохранялись как экспонента при выполнении fn:sum()
за сценой.
Позже я конвертирую xml в json с помощью следующей функции -
let $arr := json:to-array(local:tojson($data))
return (($data))
, и преобразованное значение выглядит следующим образом -
cache-properties": {
"list-cache-hit-rate": {
"units": "hits/sec",
"value": 1.5308452E6
},
"list-cache-miss-rate": {
"units": "misses/sec",
"value": "25422.167"
},
"compressed-tree-cache-hit-rate": {
"units": "hits/sec",
"value": "970.2339"
},
Обратите внимание, что значения заключены в кавычки, кроме 1.5308452E6
это значениеЭто не в кавычках.Какая коррекция здесь нужна?Или это правильно?Я предпочел бы иметь все значения в кавычках.Это моя пользовательская функция преобразования -
declare function local:tojson($func){
let $custom := let $config := json:config("custom")
let $_ := map:put( $config, "whitespace", "ignore" )
let $_ := map:put( $config, "array-element-names", "Video" )
return $config
return json:transform-to-json($func,$custom)
};