如何使用jq将JSON数组元素转为带引号字符串并新增Data属性
使用jq实现指定的JSON格式转换
我来帮你搞定这个JSON格式转换的需求!你需要把原JSON中features数组每个元素的properties对象转成带转义引号的JSON字符串,再作为新数组元素的Data属性值,用jq可以轻松实现。
核心jq命令
jq '.features | map({Data: (.properties | tojson)})'
命令拆解解释
.features:首先定位到原JSON结构里的features数组,这是我们要处理的目标数据集合map(...):遍历数组中的每一个元素,对每个元素执行括号内的转换逻辑(.properties | tojson):针对每个元素,先提取出properties对象,再用tojson函数把它转换成带转义引号的JSON字符串(这一步自动帮你处理引号转义的问题){Data: ...}:把转换后的字符串包装成一个包含Data属性的对象,最终所有处理后的对象会组成一个新数组
示例验证
输入的原始JSON
{ "type": "type1", "name": "abc", "features": [ { "type": "Feature", "properties": { "district": "d1", "district_code": "101", "block_code": "1010070" } }, { "type": "Feature", "properties": { "district": "d1", "district_code": "101", "block_code": "1010100" } } ] }
执行命令后的输出
[ { "Data": "{\"district\":\"d1\",\"district_code\":\"101\",\"block_code\":\"1010070\"}" }, { "Data": "{\"district\":\"d1\",\"district_code\":\"101\",\"block_code\":\"1010100\"}" } ]
内容的提问来源于stack exchange,提问作者komushi
相关产品推荐
相关产品推荐

