Karate:如何从JSON中删除指定的动态id元素?
删除JSON数组中所有id字段的实现方案
我们需要处理如下JSON结构,删除每个对象中的id元素:
[ { "id": "0a7936ed", "code": "test", "label": "test", "type": "sell" }, { "id": "7bc1909b2", "code": "test2", "label": "test2", "type": "Buy" } ]
处理后期望得到的结果:
[ { "code": "test", "label": "test", "type": "sell" }, { "code": "test2", "label": "test2", "type": "Buy" } ]
不同场景的实现方法
JavaScript 实现
适配前端、Node.js环境,代码简洁易读:
const originalArr = [/* 原始JSON数组 */] const result = originalArr.map(({ id, ...rest }) => rest) // 格式化输出结果 console.log(JSON.stringify(result, null, 4))
Python 实现
适配后端脚本、批量文件处理场景:
import json # 从字符串读取原始JSON original_data = json.loads("原始JSON字符串") # 若从本地文件读取可使用如下代码 # with open("input.json", "r", encoding="utf-8") as f: # original_data = json.load(f) result = [{k: v for k, v in item.items() if k != "id"} for item in original_data] # 打印格式化结果 print(json.dumps(result, indent=4, ensure_ascii=False)) # 若要写入本地文件可使用如下代码 # with open("output.json", "w", encoding="utf-8") as f: # json.dump(result, f, indent=4, ensure_ascii=False)
命令行快速处理(jq工具)
仅需一行命令即可完成本地JSON文件处理:jq 'map(del(.id))' input.json > output.json
执行后会自动读取input.json内容,删除所有对象的id字段后写入output.json。
内容的提问来源于stack exchange,提问作者Spj
相关产品推荐
相关产品推荐

