cjson是一個(gè)可以幫助我們創(chuàng)建和解析json文件的開源C語言庫。在使用cjson創(chuàng)建和解析json文件之前,我們需要安裝它。
安裝cjson的方法如下: 1.從官網(wǎng)上下載cjson源碼; 2.解壓源碼,進(jìn)入源碼目錄 3.執(zhí)行命令:make 4.執(zhí)行命令:sudo make install 5.配置環(huán)境變量(可選):export LD_LIBRARY_PATH=/usr/local/lib
接下來,我們將介紹如何使用cjson創(chuàng)建和解析json文件。
1.創(chuàng)建json文件
#include "cjson.h" int main() { cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root,"name","Tom"); cJSON_AddNumberToObject(root,"age",23); cJSON_AddTrueToObject(root,"is_student"); cJSON_AddItemToObject(root,"hobby", cJSON_CreateStringArray((const char*[]){"reading","sports","music"}, 3)); char *string = cJSON_Print(root); printf("%s\n", string); cJSON_Delete(root); return 0 }
運(yùn)行上述代碼,我們可以得到如下json文件:
{ "name": "Tom", "age": 23, "is_student": true, "hobby": [ "reading", "sports", "music" ] }
2.解析json文件
#include "cjson.h" int main() { const char *json = "{\"name\":\"Tom\",\"age\":23,\"is_student\":true,\"hobby\":[\"reading\",\"sports\",\"music\"]}"; cJSON* root = cJSON_Parse(json); cJSON* item = cJSON_GetObjectItem(root,"name"); printf("%s\n", item->valuestring); item = cJSON_GetObjectItem(root,"age"); printf("%d\n", item->valueint); item = cJSON_GetObjectItem(root,"is_student"); if(item->type == cJSON_True) printf("is_student is true\n"); item = cJSON_GetObjectItem(root,"hobby"); int size = cJSON_GetArraySize(item); int i; for(i = 0; i< size; i++) { cJSON* subitem = cJSON_GetArrayItem(item,i); printf("%s\n", subitem->valuestring); } cJSON_Delete(root); return 0; }
運(yùn)行上述代碼,我們可以得到如下輸出結(jié)果:
Tom 23 is_student is true reading sports music
到此,我們介紹了如何使用cjson創(chuàng)建和解析json文件。