【发布时间】:2019-05-27 08:27:07
【问题描述】:
我正在形成一个 xml,其 sn-p 是 -
<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)
};
【问题讨论】: