如何用C語言獲取JSON中value對應的鍵值呢?
我們可以使用第三方庫cJSON,cJSON是C語言中處理JSON的一種輕量級的庫。
//引用頭文件 #include "cJSON.h" //解析JSON字符串 cJSON *root = cJSON_Parse(json_str); //獲取指定的value對應的鍵值 cJSON *target = cJSON_GetObjectItem(root, "key");
其中,json_str是一個JSON格式的字符串,root是解析后的JSON樹結(jié)構(gòu),target就是我們想要獲取的value對應的鍵值。
需要注意的是,如果解析失敗會返回NULL,如果獲取失敗也會返回NULL。所以我們使用時需要進行判空處理。
if (root == NULL) { printf("JSON字符串解析失敗\n"); } else { cJSON *target = cJSON_GetObjectItem(root, "key"); if (target == NULL) { printf("未找到指定鍵值對應的value\n"); } else { printf("%s\n", target->valuestring); } }
最后,記得在程序退出前釋放JSON樹結(jié)構(gòu)對應的內(nèi)存。
cJSON_Delete(root);