在C語言中,獲取JSON字段需要使用第三方庫,比如cJSON。cJSON是一個(gè)輕量級的JSON解析器,在C語言中非常常用,支持JSON的讀取、創(chuàng)建和刪除。
#include "cJSON.h" int main() { char* json_string = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; cJSON* json = cJSON_Parse(json_string); if (json == NULL) { const char* error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { printf("Error before: %s\n", error_ptr); } return 1; } cJSON* name = cJSON_GetObjectItemCaseSensitive(json, "name"); cJSON* age = cJSON_GetObjectItemCaseSensitive(json, "age"); cJSON* city = cJSON_GetObjectItemCaseSensitive(json, "city"); printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("City: %s\n", city->valuestring); cJSON_Delete(json); return 0; }
上面的代碼演示了如何通過cJSON解析JSON字符串,并獲取其中的字段。首先需要將JSON字符串轉(zhuǎn)換成cJSON對象,然后通過cJSON_GetObjectItemCaseSensitive函數(shù)獲取對應(yīng)的字段。
cJSON_GetObjectItemCaseSensitive函數(shù)的第一個(gè)參數(shù)是JSON對象,第二個(gè)參數(shù)是要獲取的字段名。與普通的數(shù)組索引不同,這里需要傳入字符串作為索引。
cJSON對象的valuestring和valueint屬性分別表示字符串類型和整數(shù)類型的值。在獲取字段時(shí),需要根據(jù)字段的類型進(jìn)行適當(dāng)?shù)霓D(zhuǎn)換。
使用完cJSON對象后,需要調(diào)用cJSON_Delete函數(shù)釋放內(nèi)存,以避免內(nèi)存泄露。
下一篇vue.js name