在C語言中,獲取JSON字段需要使用第三方庫,比如cJSON。cJSON是一個輕量級的JSON解析器,在C語言中非常常用,支持JSON的讀取、創建和刪除。
#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字符串轉換成cJSON對象,然后通過cJSON_GetObjectItemCaseSensitive函數獲取對應的字段。
cJSON_GetObjectItemCaseSensitive函數的第一個參數是JSON對象,第二個參數是要獲取的字段名。與普通的數組索引不同,這里需要傳入字符串作為索引。
cJSON對象的valuestring和valueint屬性分別表示字符串類型和整數類型的值。在獲取字段時,需要根據字段的類型進行適當的轉換。
使用完cJSON對象后,需要調用cJSON_Delete函數釋放內存,以避免內存泄露。
下一篇vue.js name