作为一个命令行控,希望一切都能够在命令行下完成,当然也包括JSON。JSON作为新时代的通信方式,深受API爱好者的欢迎,因此我也希望能够在命令行下操作JSON。要实现在命令行操作JSON(解码、编码),首先想到的当然就是利用python提供的json库写一个python脚本,于是动手,并且很快实现(python毕竟就是快),在普通pc上可谓流畅,后面迁移到树莓派上,发现慢的要命,即使是非常简单的json,也要解析个2s以上,果断放弃,于是继续征途…

jo

经过一番搜索,发现有个jo工具,可以非常方便的编码JSON,而且可以认为是专门为bash而设计的,看下面几个例子就知道:

osmc@osmc:~$ jo os=linux version=3.0

{"os":"linux","version":3}

级联

osmc@osmc:~$ jo sys=$(jo -a $(jo os=linux version=3.0) $(jo os=unix version=4.0))

{"sys":[{"os":"linux","version":3},{"os":"unix","version":4}]}

从上述可以看成使用极为简单,而且可以级联,另外最重要的一点就是效率非常高,但是jo仅仅只是一个编码工具,解码呢,于是我继续搜索,发现有个jq工具,可以实现解析,但是发现效率太低了,跟我直接用python没什么区别,于是继续搜索…

jshon

又经过一番努力,发现了新大陆 —— jshon,他是基于jansson,效率自然不用说。于是试用了下,效率非常高。

[osmc@osmc:~$ jo os=linux version=3.0|jshon -e os

"linux"

有了以上的两个工具,在命令行的世界里,我们也可以愉快地使用JSON