如何用XQuery的for循环遍历输出JSON指定节点的键值对?
XQuery代码实现遍历JSON键值对(使用for循环)
需求说明
从给定的JSON结构中提取transation对象下的所有键值对,通过for循环实现并输出指定格式的结果。
实现代码
以下是两种实现方式,均基于for循环处理:
方式1:基础循环输出(含末尾逗号)
let $json := parse-json('{ "id":"743", "groupName":"group1", "transation":{ "101":"success", "102":"rejected", "301":"processing" } }') for $entry in map:entries($json?transation) return concat('"', $entry?key, '":"', $entry?value, '",')
方式2:优化格式输出(无末尾逗号,换行分隔)
let $json := parse-json('{ "id":"743", "groupName":"group1", "transation":{ "101":"success", "102":"rejected", "301":"processing" } }') let $formatted-entries := for $entry in map:entries($json?transation) return concat('"', $entry?key, '":"', $entry?value, '"') return string-join($formatted-entries, ', ')
代码说明
parse-json:将JSON字符串解析为XQuery的映射(map)对象,便于后续操作。map:entries:把transation对应的map转换为键值对条目序列,每个条目包含key和value属性。- for循环:遍历每个键值对条目,拼接成符合预期的字符串格式。
string-join(方式2中使用):将所有格式化后的键值对用,\n连接,避免末尾出现多余逗号,同时保证换行分隔的格式。
内容的提问来源于stack exchange,提问作者Balan
相关产品推荐
相关产品推荐

