生活随笔
收集整理的這篇文章主要介紹了
c语言解析json数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://buluzhai.iteye.com/blog/845404
我使用的是cJSON:http://sourceforge.net/projects/cjson/?
先看json的數據結構?
c中沒有對象,所以json數據是采用鏈表存儲的?
C代碼??
typedef?struct?cJSON?{?? ????struct?cJSON?*next,*prev;????? ????struct?cJSON?*child;?????????? ?? ????int?type;????????????? ?? ????char?*valuestring;???????????? ????int?valueint;????????????????? ????double?valuedouble;??????????? ?? ????char?*string;????????????????? }?cJSON;?? 比如你有一個json數據?
Javascript代碼??
{?? ????"name":?"Jack?(\"Bee\")?Nimble",??? ????"format":?{?? ????????"type":???????"rect",??? ????????"width":??????1920,??? ????????"height":?????1080,??? ????????"interlace":??false,??? ????????"frame?rate":?24?? ????}?? }?? 那么你可以?
1:講字符串解析成json結構體。?
C代碼??
cJSON?*root?=?cJSON_Parse(my_json_string);?? 2:獲取某個元素?
C代碼??
cJSON?*format?=?cJSON_GetObjectItem(root,"format");?? int?framerate?=?cJSON_GetObjectItem(format,"frame?rate")->valueint;?? 3:講json結構體轉換成字符串?
C代碼??
char?*rendered=cJSON_Print(root);?? 4:刪除?
C代碼??
cJSON_Delete(root);?? 5:構建一個json結構體?
C代碼??
cJSON?*root,*fmt;?? root=cJSON_CreateObject();???? cJSON_AddItemToObject(root,?"name",?cJSON_CreateString("Jack?(\"Bee\")?Nimble"));?? cJSON_AddItemToObject(root,?"format",?fmt=cJSON_CreateObject());?? cJSON_AddStringToObject(fmt,"type",?????"rect");?? cJSON_AddNumberToObject(fmt,"width",????????1920);?? cJSON_AddNumberToObject(fmt,"height",???????1080);?? cJSON_AddFalseToObject?(fmt,"interlace");?? cJSON_AddNumberToObject(fmt,"frame?rate",???24);??
總結
以上是生活随笔為你收集整理的c语言解析json数据的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。