在C中獲取JSON數據并將其轉為數據需要借助第三方庫,比如cJSON。
// 引入cJSON頭文件 #include <cJSON.h> int main() { // 假設獲取到的JSON字符串為str char *str = "{\"name\":\"Tom\",\"age\":18}"; // 解析JSON字符串為cJSON對象 cJSON *json = cJSON_Parse(str); // 獲取指定key對應的value cJSON *name = cJSON_GetObjectItem(json, "name"); cJSON *age = cJSON_GetObjectItem(json, "age"); // 獲取value的類型,并將其轉換為對應的C類型 if (cJSON_IsString(name)) { printf("Name: %s\n", name->valuestring); } if (cJSON_IsNumber(age)) { printf("Age: %d\n", age->valueint); } // 釋放cJSON對象 cJSON_Delete(json); return 0; }
在以上代碼中,我們首先通過cJSON_Parse函數解析JSON字符串為cJSON對象,然后通過cJSON_GetObjectItem函數獲取指定key對應的value,并通過cJSON_IsXXX函數判斷value的類型,最后將value轉換為對應的C類型。最后我們需要使用cJSON_Delete函數釋放掉不再使用的cJSON對象,以避免內存泄露。