在C語言中,處理JSON字符串是非常常見的任務(wù)。JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,被廣泛用于前后端之間的數(shù)據(jù)傳輸。在C語言中,我們可以使用第三方庫(kù)來處理JSON字符串,比如 cJSON。
#include#include #include "cJSON.h" int main() { char *json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; cJSON *json = cJSON_Parse(json_str); if (json == NULL) { printf("Invalid JSON string\n"); return 1; } cJSON *name = cJSON_GetObjectItem(json, "name"); printf("Name: %s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(json, "age"); printf("Age: %d\n", age->valueint); cJSON *city = cJSON_GetObjectItem(json, "city"); printf("City: %s\n", city->valuestring); cJSON_Delete(json); return 0; }
以上代碼演示了如何解析一個(gè)簡(jiǎn)單的JSON字符串。首先我們需要引入頭文件cJSON.h
,然后創(chuàng)建一個(gè)JSON字符串,接著使用cJSON_Parse
函數(shù)將字符串解析為一個(gè) cJSON 對(duì)象。如果解析失敗,cJSON_Parse
函數(shù)會(huì)返回 NULL。
接著,我們使用cJSON_GetObjectItem
函數(shù)按照鍵名獲取 JSON 對(duì)象中的值。注意到該函數(shù)返回的是一個(gè) cJSON 對(duì)象,我們需要使用對(duì)應(yīng)的類型轉(zhuǎn)換函數(shù)來獲取具體的值。比如,cJSON_GetObjectItem
用于獲取對(duì)象中的name
鍵對(duì)應(yīng)的值,該值是一個(gè)字符串,因此我們使用valuestring
屬性來獲取字符串的值。
最后,我們使用cJSON_Delete
函數(shù)來釋放 cJSON 對(duì)象占用的內(nèi)存。