c語言常被用于系統(tǒng)編程、嵌入式開發(fā)等領(lǐng)域,但是在處理數(shù)據(jù)方面相對較為繁瑣。json是一種輕量級的數(shù)據(jù)交換格式,它簡潔明了、易于解析,因此在網(wǎng)絡(luò)數(shù)據(jù)傳輸和存儲方面得到廣泛應(yīng)用。
#include#include #include #include int main(void) { char *json_string = "{\"name\": \"張三\", \"age\": 18, \"sex\": \"male\"}"; cJSON *json = cJSON_Parse(json_string); if (json) { char *name = cJSON_GetObjectItem(json, "name")->valuestring; int age = cJSON_GetObjectItem(json, "age")->valueint; char *sex = cJSON_GetObjectItem(json, "sex")->valuestring; printf("name: %s, age: %d, sex: %s\n", name, age, sex); cJSON_Delete(json); } return 0; }
上面的代碼演示了如何使用cJSON解析json字符串。cJSON是一個基于c語言實現(xiàn)的json解析庫,它提供了一系列函數(shù)來操作json數(shù)據(jù)。在上面的例子中,首先使用cJSON_Parse函數(shù)將json字符串解析成一個cJSON對象,然后使用cJSON_GetObjectItem函數(shù)獲取對象中的各個字段值,并將它們賦值給相應(yīng)變量。
需要注意的是,cJSON_GetObjectItem函數(shù)返回的是一個cJSON對象,需要使用相應(yīng)的函數(shù)來獲取其值,如cJSON_GetObjectItem->valuestring獲取字符串類型的值,cJSON_GetObjectItem->valueint獲取整數(shù)類型的值。
cJSON除了支持解析json字符串外,還支持創(chuàng)建和修改json對象、數(shù)組等操作,使用起來非常方便。