You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XQuery提取指定JSON中transation字段下的全部键名

XQuery提取JSON指定键的实现方案

XQuery 3.1及以上版本原生支持JSON处理,解析后的JSON对象会映射为XQuery的map类型,使用map:keys()函数即可提取指定map的所有键。

完整代码示例

xquery version "3.1";

(: 解析输入JSON字符串,若JSON存储为文件可替换为json-doc("你的JSON文件路径") :)
let $json := parse-json('{
  "id":"743",
  "groupName":"group1",
  "transation":{
      "101":"success",
      "102":"rejected",
      "301":"processing"
   }
}')

(: 遍历transation字段下的所有键,按数值排序后输出带双引号的格式 :)
for $key in map:keys($json?transation)
order by $key cast as xs:integer
return concat("\"", $key, "\"")

输出结果

运行上述代码即可得到你需要的输出:

"101"
"102"
"301"

注意事项

  • 需使用支持XQuery 3.1及以上版本的处理器,主流的Saxon、BaseX、eXist-db均满足要求
  • 若不需要严格保证键的输出顺序,可以删除order by子句,大部分处理器会默认保留JSON原始的键顺序,但XQuery规范未强制要求map的键顺序,增加排序逻辑兼容性更强。

内容的提问来源于stack exchange,提问作者Balan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:06:06