diff-json-data

1.0.4 • Public • Published

diff-json-data

这是一个你可能需要的小工具~

它用于对比两个 json 之间的差异,然后最终输出一个 json 描述差异。这在你需要在两次接口返回的大量数据中找茬儿,寻找出中间的差异的时候还是挺好用的。

我最近做的一项工作就是,接口底层链路变更了,导致返回的数据与原本的数据存在着差异,我需要对比新旧接口返回数据的差异去做转换以及兼容。每次拿到两个非常庞大的对象的时候真的非常要命,看似没什么不同实际上,在对象深层的地方藏着非常细微的差别,导致了下游程序的崩溃。最终为了稳妥,我还是写了一个小工具来辅助我的工作,就是这个 diff-json-data。

GitHub 欢迎 star

如何安装

全局安装然后使用 cli

npm install -g diff-json-data
# or
yarn add -global diff-json-data

当然你也可以集成到你的项目里面去做一些奇怪的事情

npm install diff-json-data
# or
yarn add diff-json-data

如何使用

1. cli 的使用就非常的简单

diffjs -c path ./data1.json ./data2.json key new_interface old_interface

-c 表示你要进行两个 json 文件的对比

path 指令后面指定两个能寻找的到 json 文件的路径,使用空格隔开

key 指令后面指定两个 key 最终它会在 result.json 中体现,你也可以不指定,默认 key1 key2

你还可以使用 out 指令置顶结果 json 输出路径例如

diffjs -c path ./data1.json ./data2.json out ./interface_result.json

2. 集成到项目

这个项目就只导出了一个 diff function, 所以就直接拿到就用就行了

输入: (value1: object, value2: object, key1 = 'value1', key2 = 'value2', strict = false)

输出差异结构对象

E.g:

import diff from 'diff-json-data'

const result = diff({ hello: 'hhahah' }, { hello: 'hhahah', a: 1 })

console.log(result)

E.g

data1

{
  "IsPrint": false,
  "data": {
    "log_id": "5636805825537214258",
    "action_rule": {
      "pos_1": [],
      "pos_2": [],
      "pos_3": []
    }
  },
  "action_rule": {
    "pos_1": [],
    "pos_2": [],
    "pos_3": []
  },
  "pos_1": [],
  "pos_2": [],
  "pos_3": [],
  "log_id": "5636805825537214258",
  "errmsg": "ok",
  "errno": 0
}

data2

{
  "IsPrint": false,
  "data": {
    "log_id": "5636805825537214255",
    "action_rule": {
      "pos_1": [],
      "pos_2": [],
      "pos_3": []
    }
  },
  "action_rule": {
    "pos_1": [],
    "pos_2": [],
    "pos_3": []
  },
  "pos_1": [],
  "pos_2": [],
  "pos_3": [],
  "log_id": "5636805825537214256",
  "errmsg": "ok",
  "errno": 0
}
diffjs -c path ./data1.json ./data2.json key value1 value2

output ./result.json

{
  "data": {
    "log_id": {
      "diff": "inconsistent value!",
      "value1": "5636805825537214258",
      "value2": "5636805825537214255"
    }
  },
  "log_id": {
    "diff": "inconsistent value!",
    "value1": "5636805825537214258",
    "value2": "5636805825537214256"
  }
}

如果有用

1 分也是爱~

Readme

Keywords

none

Package Sidebar

Install

npm i diff-json-data

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

13.4 kB

Total Files

11

Last publish

Collaborators

  • winily