用Shell查詢數(shù)據(jù),返回值要轉(zhuǎn)換成Json格式。
而在bash中的json處理json.org推薦了兩種jshon,JSON.sh
其中JSON.sh是完全用shell實(shí)現(xiàn)的json parser,似乎不能做到添加/修改/刪除原有json的結(jié)構(gòu)。而jshon是用c實(shí)現(xiàn)的,依賴于jansson,使用MIT協(xié)議,目的就是為了替代由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
- 安裝之后測(cè)試
# echo '{"40154":"SND-VN-709", "40163":"SND-VN-710"}' | ./jshon
在這里可能會(huì)出現(xiàn)問(wèn)題
error while loading shared libraries: libjansson.so.4: cannot open shared object file: No such file or directory
解決問(wèn)題
# 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
好了問(wèn)題解決
下面我們測(cè)試一下:
# echo '{"40154":"SND-VN-709", "40163":"SND-VN-710"}' | ./jshon
{
"40163": "SND-VN-710",
"40154": "SND-VN-709"
}
ok.