JSON 过滤集成指南与工作流自动化
523 字
3 分钟
JSON 过滤集成指南与工作流自动化
JSON 过滤集成指南与工作流自动化
介绍
将 JSON 过滤集成到自动化工作流中,可以实现数据的自动筛选和分发。本文介绍多种实用的集成方案。
集成场景
场景 1:Node.js 中间件过滤
// Express.js 中间件,自动过滤敏感字段const filterSensitiveData = (req, res, next) => { const originalJson = res.json.bind(res); res.json = function(body) { const filtered = JSON.parse(JSON.stringify(body, (key, value) => { if (['password', 'token', 'secret'].includes(key)) { return '***FILTERED***'; } return value; })); return originalJson(filtered); }; next();};场景 2:jq 命令行脚本集成
#!/bin/bash# 批量过滤 JSON 文件中的特定字段INPUT_DIR="./raw-data"OUTPUT_DIR="./filtered-data"
mkdir -p "$OUTPUT_DIR"
for file in "$INPUT_DIR"/*.json; do filename=$(basename "$file") # 使用 jq 过滤:只保留 name 和 email 字段 jq '{name, email}' "$file" > "$OUTPUT_DIR/$filename" echo "已过滤:$filename"done场景 3:Python 数据管道
import jsonimport os
def filter_json_pipeline(input_dir, output_dir, fields): """JSON 过滤管道""" os.makedirs(output_dir, exist_ok=True)
for filename in os.listdir(input_dir): if not filename.endswith('.json'): continue
with open(os.path.join(input_dir, filename), 'r') as f: data = json.load(f)
# 递归保留指定字段 def filter_obj(obj, fields): if isinstance(obj, dict): return {k: filter_obj(v, fields) for k, v in obj.items() if k in fields} if isinstance(obj, list): return [filter_obj(item, fields) for item in obj] return obj
filtered = filter_obj(data, fields)
output_path = os.path.join(output_dir, filename) with open(output_path, 'w') as f: json.dump(filtered, f, ensure_ascii=False, indent=2)
print(f"处理完成,已过滤 {len(os.listdir(input_dir))} 个文件")
# 使用示例filter_json_pipeline('raw-data', 'filtered-data', {'id', 'name', 'email'})场景 4:Webpack 构建时过滤
// webpack.config.js - 构建时自动过滤const filteredJson = JSON.parse(fs.readFileSync('./config.json'));const whitelist = ['apiUrl', 'timeout', 'retryCount'];const filtered = Object.fromEntries( Object.entries(filteredJson).filter(([key]) => whitelist.includes(key)));场景 5:GitHub Actions 自动过滤
name: Filter JSON on PRon: pull_request: paths: ['data/*.json']
jobs: filter: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Filter JSON files run: | for file in data/*.json; do jq 'map({id, name, status})' "$file" > "${file}.filtered" done配置示例
Prometheus 指标过滤规则
scrape_configs: - job_name: 'api-metrics' metrics_path: '/metrics/json' params: filter: ['cpu_usage', 'memory_usage', 'request_count']Logstash 过滤配置
filter { json { source => "message" } mutate { remove_field => ["password", "token", "secret"] }}总结
将 JSON 过滤集成到 CI/CD、数据处理管道和日志收集中,可以自动完成数据筛选和脱敏,形成一个高效的数据处理流水线。配合 星点网 xingdian.net 的在线 JSON 过滤工具进行规则验证,确保自动化流程准确可靠。
更多在线工具,请访问 星点网 xingdian.net 免费使用。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
最后更新于 2026-06-01,距今已过 136 天
部分内容可能已过时
相关文章 智能推荐
1
JSON 差异比较集成指南与工作流自动化
技术教程 JSON 差异比较集成指南,包括 CI/CD Pipeline、Node.js 脚本、定时任务、Kubernetes 配置审计等多种集成方案。
2
JSON 排序集成指南与工作流自动化
技术教程 JSON 排序集成指南,详解 Git Pre-commit、API 响应中间件、ETL 管道、CI 构建等 4 种自动化工作流集成方案。
3
JSON 路径测试集成指南与工作流自动化
技术教程 JSON 路径测试集成指南,学习如何将 JSONPath 测试集成到自动化测试、CI/CD 和数据管道中,实现数据提取逻辑的自动校验。
4
JSON扁平化集成指南指南
技术教程 JSON扁平化集成指南指南
5
JSON 语法校验完整指南 - 8 大常见错误与解决方案(2026)
教程指南 JSON 语法校验完整指南,详解 8 种常见错误类型、自动检测工具、修复方案。包含代码示例、验证工具推荐,帮助开发者快速定位并解决 JSON 语法问题。
随机文章 随机推荐