使用Jolt转换对象数组:Hobbies数组转换失败求助
解决JSON转换中Hobbies数组的提取问题
要完成从input.json到output.json的转换,针对Hobbies数组提取名称的需求,以下是具体实现方案:
用JQ工具实现(推荐)
直接运行以下JQ命令即可完成完整转换:
jq '.users[] | { "Name": .name, "Address": "\(.address.street), \(.address.city), \(.address.state) \(.address.zip)", "Hobbies": [.hobbies[].name] }' input.json > output.json
其中Hobbies字段的处理逻辑是:[.hobbies[].name]遍历每个用户的hobbies数组,提取每个对象的name属性,最终组合成字符串数组。
用JSONata表达式实现
如果使用JSONata工具,对应的转换表达式为:
users.{ "Name": name, "Address": address.street & ", " & address.city & ", " & address.state & " " & address.zip, "Hobbies": hobbies.name }
JSONata会自动识别hobbies.name为提取数组中所有对象的name字段,直接生成目标格式的数组。
你之前尝试的$或@通配符没生效,大概率是通配符的作用范围不对——需要明确遍历hobbies数组内的每个元素,再提取对应的name字段,而不是直接修改索引名称。
内容的提问来源于stack exchange,提问作者Rishabh Malviya
相关产品推荐
相关产品推荐

