【每日一库】让你的 json 可以 grep:gron

polaris · 2020-02-26 18:48:46 · 3236 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2020-02-26 18:48:46 的主题,其中的信息可能已经有所发展或是发生改变。

项目地址:https://github.com/tomnomnom/gron,目前 Star 数 6.1k。

gron 将 JSON 转换为离散的值,以使其更易于根据需要进行grep并查看其绝对“路径”。它简化了对返回大块 JSON 但具有糟糕文档的 API 的探索。

安装

可以源码安装,要求 Go1.7+

go get -u github.com/tomnomnom/gron

或者下载编译好的二进制:https://github.com/tomnomnom/gron/releases

如何使用

使用本地 JSON 文件:

$ gron testdata/two.json 
json = {};
json.contact = {};
json.contact.email = "mail@tomnomnom.com";
json.contact.twitter = "@TomNomNom";
json.github = "https://github.com/tomnomnom/";
json.likes = [];
json.likes[0] = "code";
json.likes[1] = "cheese";
json.likes[2] = "meat";
json.name = "Tom";

还可以从 URL 获取 JSON 进行 grep:

$ gron http://headers.jsontest.com/
json = {};
json.Host = "headers.jsontest.com";
json["User-Agent"] = "gron/0.1";
json["X-Cloud-Trace-Context"] = "6917a823919477919dbc1523584ba25d/11970839830843610056";

还可以从标准输入:

$ curl -s http://headers.jsontest.com/ | gron
json = {};
json.Accept = "*/*";
json.Host = "headers.jsontest.com";
json["User-Agent"] = "curl/7.43.0";
json["X-Cloud-Trace-Context"] = "c70f7bf26661c67d0b9f2cde6f295319/13941186890243645147";

除此之外,还可以方便对比两个 JSON 文件的不同、查看目标的 JSON 路径,并且 gron 的输出是合法的 JavaScript 对象等。详细可以看项目首页的介绍。

建议试试,说不定什么时候就能用上!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3236 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传