用Shell查询数据,返回值要转换成Json格式。
而在bash中的json处理json.org推荐了两种jshon
,JSON.sh
其中JSON.sh是完全用shell实现的json parser,似乎不能做到添加/修改/删除原有json的结构。而jshon是用c实现的,依赖于jansson,使用MIT协议,目的就是为了替代由grep/sed/awk写的fragile adhoc parsers.
这里我们使用jshon
- 安装
Jshon的安装需要Jansson支持:jansson
#wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
#tar -zxvf jansson-2.5.tar.gz
#cd jansson-2.5
#./configure && make && make install
#cd /root/soft
#wget http://kmkeen.com/jshon/jshon.tar.gz
#tar -zxvf jshon.tar.gz
#cd jshon-2012091
# make
- 安装之后测试
# echo '{"40154":"SND-VN-709", "40163":"SND-VN-710"}' | ./jshon
在这里可能会出现问题
error while loading shared libraries: libjansson.so.4: cannot open shared object file: No such file or directory
解决问题
# ls /usr/local/lib/
libjansson.a libjansson.la libjansson.so libjansson.so.4 libjansson.so.4.7.0 pkgconfig
# ln -s /usr/local/lib/libjansson.so.4 /usr/lib/libjansson.so.4
# ldconfig
好了问题解决
下面我们测试一下:
# echo '{"40154":"SND-VN-709", "40163":"SND-VN-710"}' | ./jshon
{
"40163": "SND-VN-710",
"40154": "SND-VN-709"
}
ok.