# Jsoncmp **Repository Path**: PiusXzx/jsoncmp ## Basic Information - **Project Name**: Jsoncmp - **Description**: Json compare - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-11 - **Last Updated**: 2025-10-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Jsoncmp 一个轻量级的命令行工具,用于比较两个 JSON 文件之间的差异。它递归检测结构变化、值不匹配等,支持表格、统一差异和 JSON 等格式输出。 ## 功能特性 - **递归比较**:处理嵌套对象、数组和基本类型。 - **差异类型**:检测缺失/多余键、值不匹配、类型变化、数组长度问题。 - **输出格式**:表格(默认)、统一 diff 或 JSON。 ## 安装 ### 预构建二进制文件 从 [Gitee Releases](https://gitee.com/PiusXzx/jsoncmp/releases) 下载最新版本的你的 OS/架构文件,然后: ```bash chmod +x jsoncmp sudo mv jsoncmp /usr/local/bin/ # 或添加到你的 PATH ``` ## 使用方法 ```bash jsoncmp [flags] [FILE1] [FILE2] ``` - `FILE1` 和 `FILE2`:JSON 文件路径(必需;正好 2 个参数)。 - 如果文件相同:输出 “No differences found.”。 ### 标志选项 | 标志 | 短标志 | 描述 | 默认值 | |------|--------|------|--------| | `--json` | `-j` | 以 JSON 格式输出 | `false`(表格) | | `--version` | `-v` | 显示版本 | N/A | | `--help` | `-h` | 显示帮助 | N/A | ## 示例 ### 基本比较(表格输出) ```bash jsoncmp file1.json file2.json ``` **输出**(如果有差异): ``` - Path: root.user.name Type: value_mismatch Expected: Alice Actual: Bob - Path: root.extra Type: extra_key Expected: Actual: value Found 2 differences: ``` ### JSON 输出 ```bash jsoncmp -j file1.json file2.json ``` **输出**: ```json [ { "path": "root.user.name", "type": "value_mismatch", "expected": "Alice", "actual": "Bob" }, { "path": "root.extra", "type": "extra_key", "expected": null, "actual": "value" } ] ``` ## 示例 JSON 文件 用于测试,创建 `file1.json`: ```json { "user": { "name": "Alice", "age": 30 } } ``` 和 `file2.json`: ```json { "user": { "name": "Bob", "age": 30 }, "extra": "value" } ```