GRON-让JSON变得可升级

2020-11-07 11:13:44

Gron将JSON转换为离散赋值,以便更容易地grep您想要的内容,并看到它的绝对路径。它简化了对返回大量JSON但文档糟糕的API的研究。

作者={};json[0].提交.";https://api.github.com/repos/tomnomnom/gron/commits?per_page=1";={};json[0].Commit.Auth.date=";2016-07-02T10:51:21Z";;json[0].commit.author.email=";[email protected]";;json[0].commit.author.name=";Tom Hudson";▶=#34;json[0].提交.作者={};json[0].提交.Auth.date=";2016-07-02T10:51:21Z";;json[0].commit.author.email=";[email protected]";;json[0].commit.author.name=";Tom Hudson";;

Gron还可以向后工作,使您能够将过滤后的数据转换回JSON:

2016-07-02T10:51:21z";,";,";";https://api.github.com/repos/tomnomnom/gron/commits?per_page=1";";:";▶";:{";日期";:";日期";:";电子邮件";:";[email protected]";,";姓名";:";Tom Hudson";}]。

Gron没有运行时依赖项。您只需下载适用于Linux、Mac、Windows或FreeBSD的二进制文件并运行它。将该二进制文件放入$PATH中(例如,在/usr/local/bin中)以便于使用:

或者,如果您是Go用户,则可以使用Go Get(如果您正在使用Go 1.7或更高版本):

建议你使用别名ungron或norg(或者两者都用!)。笑一笑--笑一笑。在您的Shell配置文件中添加类似以下内容的内容(例如,在~/.bashrc中):

或者,您可以在$PATH中创建一个名为ungron或norg的Shell脚本,以影响所有用户:

Json.github=";[email protected]";;json.contact.twitter=[];json.like[0]=";code";;json.like[1]=";;json.like[1]=";;json.like[2]=";;json.like[2]=";";https://github.com/tomnomnom/";;json.likes=[];▶[0]=";code";;json.like[1]=";;json.like[2]=";;json.like[2]=";json.like[1]=";;json.like[2]=";肉;json.name=";Tom&34;;

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

Tmp.js▶▶Echo";console.log(Json);";>;>;tmp.js▶节点JS tmp.js{联系人:{电子邮件:{Email:;▶@TomNomno.com;,推特:';@TomNomNom&39;},giHub:';▶&#点赞:[';▶&#。,#39;肉#;],名字:';Tom';}。

GitHub gron testdata/two.json|gron-u{";Contact";:{";Email";:";[email protected];,";twitter";:";@TomNomNom";},";GitHub";:";https://github.com/tomnomnom/";,";▶";:[";code";,";奶酪";,";肉";],";名称";:";汤姆";}。

这意味着您可以将gron与grep和其他工具一起使用来修改JSON:

▶gron testdata/two.json|grep赞|gron--ungron{";赞";:[";code";,";奶酪";,";肉";]}。

▶gon--json testdata/two.json|grep赞|gron--json--ungron{";赞";:[";代码";,";奶酪";,";肉类";]}。

▶gron testdata/two.json|grep赞|grep-v cheesejson.like=[];json.like[0]=";code";;json.like[2]=";肉";;▶gron testdata/two.json|grep赞|grep-v奶酪|gron--ungron{";like";:[";code";

如果您有创意,可以使用gron执行一些非常巧妙的技巧,然后将输出恢复到JSON中。

▶gron--Help将Json(从文件、url或stdin)转换为离散赋值,使其变得可处理用法:gron[Options][FILE|url|-]选项:-u,--ungron反转操作(将赋值转换回json)-c,--Colorize Colorize Output(默认设置为tty)-m,--单色(don';T Colorize Output)-s,--stream将每行输入视为单独的JSON对象-k,--不安全禁用证书验证-j,--json将gron数据表示为JSON流--不排序Don';T排序输出(更快)--版本打印版本信息退出代码:0 OK 1无法打开文件2无法读取输入3无法形成语句4无法获取url 5无法解析语句6无法编码JSON示例:gron/tmp/apiponse.json gron http://jsonplaceholder.typicode.com/users/1 curl-s http://jsonplaceholder.typicode.com/users/1|gron gron http://jsonplaceholder.typicode.com/users/1|grep company|gron--ungron。

主要是为了消除PHP的依赖关系。有很多使用JSON的人没有安装PHP。

JQ很棒,比GRON强大得多,但伴随着这种强大,复杂性也随之而来。Gron的目标是让你更容易使用你已经知道的工具,比如grep和sed。

Gron的主要目的是在你还不知道其结构的情况下,让你很容易在一个嵌套得很深的JSON BLOB中找到通向某个值的路径;只有在你知道该结构之后,JQ的大部分功能才会被释放。