在 web 開發(fā)中,常常需要使用 json 數(shù)據(jù)傳遞數(shù)據(jù)。c 語言作為一種比較底層的語言,在解析 json 數(shù)據(jù)方面需要使用一些庫的幫助。
CJSON 是一個輕量級的庫,可以用來解析 json 數(shù)據(jù)。在使用之前,需要先下載并編譯該庫。
git clone https://github.com/DaveGamble/cJSON.git cd cJSON/ make
在代碼中使用 cjson 大致分為三個步驟:
- 解析 json 字符串
- 通過 cjson 提供的 API 來訪問 json 數(shù)據(jù)
- 釋放內存
下面是一個示例代碼:
#include "cJSON.h" #includeint main() { char* json_str = "{\"name\":\"Alice\",\"age\":20}"; cJSON* root = cJSON_Parse(json_str); cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); printf("name: %s, age: %d\n", name->valuestring, age->valueint); cJSON_Delete(root); return 0; }
在該示例代碼中,我們先定義 json 字符串 "{'name':'Alice', 'age':20}" 。然后通過 cJSON_Parse 將其解析為 cJSON 結構體。接著我們又分別獲取其中的 "name" 和 "age" 屬性,并使用其提供的 valuestring 和 valueint 取出其對應的值。最后釋放 root 的內存。
通過 cjson 解析 json 數(shù)據(jù)非常方便快捷。但是需要注意,cjson 不支持解析復雜的 json 數(shù)據(jù),例如 json 數(shù)組。
上一篇python 建立關系式
下一篇python+++服務器