C語言對于處理JSON數(shù)據(jù)有豐富的庫可以選擇,其中最常用的是cJSON。
使用cJSON需要先將JSON格式的字符串轉(zhuǎn)為cJSON格式的數(shù)據(jù),再通過cJSON的API來解析數(shù)據(jù)。
#include "cJSON.h" int main(){ char *jsonstr = "{\"name\":\"Tom\",\"age\":18,\"score\":[66, 77, 88]}"; cJSON *root = cJSON_Parse(jsonstr); cJSON *name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", age->valueint); cJSON *score = cJSON_GetObjectItem(root, "score"); int size = cJSON_GetArraySize(score); for(int i=0; ivalueint); } cJSON_Delete(root); return 0; }
在這個示例中,我們定義了一個JSON字符串,并將其轉(zhuǎn)為cJSON格式的數(shù)據(jù)。接著通過cJSON的API獲取了其中的name、age和score字段,并打印出它們的值。其中score字段是一個數(shù)組,我們使用cJSON的API獲取其大小,再用循環(huán)依次獲取每一項的值。
需要注意的是,在使用完cJSON數(shù)據(jù)后,需要通過cJSON_Delete()函數(shù)將其刪除,以釋放相關(guān)內(nèi)存。