1、下載並解壓json-c-0.9
#wget http://oss.metaparadigm.com/json-c/json-c-0.9.tar.gz
#tar -zxvf json-c-0.9.tar.gz
2、編譯json-c-0.9
#cd json-c-0.9/
# ./configure --prefix=/home/usrname/json/out --enable-shared
#make && make install
3、測試json-c-0.9的例子:
#gcc -I/home/usrname/json/out/include/json/ -L/home/usrname/json/out/lib test2.c -D__STRICT_ANSI__ -ljson -o test2
#export LD_LIBRARY_PATH=/home/usrname/json/out/lib
#./test2
其中 -D__STRICT_ANSI__ 是為了消除c99的編譯選項。
結果
new_obj.to_string()={ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": [ { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": "A
meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": [ "GML", "XML", "markup" ] } ] } } }
test2.c的程式
int main(int argc, char **argv){ json_object *new_obj; //聲明json對象 MC_SET_DEBUG(1); //debug 使能//json_tokener_parse :將json格式的string轉化為json對象的方法 new_obj = json_tokener_parse("/* more difficult test case */ { \"glossary\": { \"title\": \"example glossary\", \"GlossDiv\": { \"title\": \"S\", \"GlossList\": [ { \"ID\": \"SGML\", \"SortAs\": \"SGML\", \"GlossTerm\": \"Standard Generalized Markup Language\", \"Acronym\": \"SGML\", \"Abbrev\": \"ISO 8879:1986\", \"GlossDef\": \"A meta-markup language, used to create markup languages such as DocBook.\", \"GlossSeeAlso\": [\"GML\", \"XML\", \"markup\"] } ] } } }");//json_object_to_json_string:將json對象轉化為json格式的string//列印輸出json格式的string printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));//json_object_put: 銷毀一個json對象 json_object_put(new_obj); return 0;}