在使用C語言處理JSON數據時,經常會需要將JSON字符串轉化為字典結構,以方便我們對數據進行讀取和修改。
#include#include #include #include /** * 解析JSON字符串為字典結構 * * @param json_str JSON字符串 * @return 字典結構 */ cJSON *parse_json_to_dict(const char *json_str) { cJSON *root = cJSON_Parse(json_str); return root; } /** * 釋放字典結構所占用的內存 * * @param root 字典結構 */ void free_dict(cJSON *root) { cJSON_Delete(root); } int main() { const char *json_str = "{\"name\": \"Tom\", \"age\": 18}"; cJSON *root = parse_json_to_dict(json_str); cJSON *name_node = cJSON_GetObjectItem(root, "name"); if (name_node) { printf("name: %s\n", name_node->valuestring); } cJSON *age_node = cJSON_GetObjectItem(root, "age"); if (age_node) { printf("age: %d\n", age_node->valueint); } free_dict(root); return 0; }
在上面的代碼中,我們通過cJSON_Parse函數將JSON字符串解析為字典結構,然后通過cJSON_GetObjectItem函數獲取字典中的具體值。
需要注意的是,使用完字典結構后一定要記得釋放所占用的內存。