c JSON 轉(zhuǎn) Obj 是現(xiàn)代編程中非常常見的一種需求 。C 語言中沒有自帶的 JSON 解析庫 , 但是 c 語言有非常強大的基礎(chǔ)數(shù)據(jù)類型 , 一些聰明的程序員們就選擇用 c 語言寫 JSON 解析庫。
很多 c 語言的 JSON 解析庫都是將 JSON 對象轉(zhuǎn)換成 C 語言的數(shù)據(jù)結(jié)構(gòu) , 單參考 JSON 標(biāo)準(zhǔn) , JSON 對象有 6 種類型 :
1. 對象 2. 數(shù)組 3. 字符串 4. 數(shù)字 5. 布爾值 6. 空值
所以對于 c 語言 JSON 解析庫的每一個完成單 , 都要對于每種 JSON 類型實現(xiàn)對應(yīng)的 C 語言數(shù)據(jù)結(jié)構(gòu) .
以下是使用 cJSON 庫實現(xiàn) JSON 轉(zhuǎn) Obj 的簡單步驟 :
1. 引入 cJSON 庫頭文件 : #include "cjson.h" 2. 解析 JSON 字符串: cJSON *root = cJSON_Parse(json_str); 3. 如果 JSON 解析成功, 使用cJSON_GetObjectItem()獲取 JSON 對象成員 : cJSON *method = cJSON_GetObjectItem(root, "method"); 4. 如果 JSON 解析失敗, 通過查看異常信息可以確定失敗原因 : printf("Error before: [%s]\n", cJSON_GetErrorPtr()); 5. cJSON 解析完畢后需要調(diào)用 cJSON_Delete()釋放內(nèi)存 : cJSON_Delete(root);
c JSON 解析庫有很多 , 例如 : cJSON , jansson , json-c 等等 . 這些解析庫各自可以滿足不同場景下 JSON 解析的基本需求 , 使用起來非常方便。
上一篇c json傳參
下一篇c json壓縮gzip