JSON是一種輕量級的數(shù)據(jù)交換格式,它常用于Web開發(fā),特別是與AJAX技術一起使用,而C語言則是一種高級編程語言,使用廣泛。在C語言中,如何取得JSON中的值呢?我們可以使用cJSON這個開源的JSON解析庫來實現(xiàn)。
#include <stdio.h> #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("Error parsing json string\n"); return 1; } cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name"); if(cJSON_IsString(name) && name->valuestring != NULL) { printf("Name: %s\n", name->valuestring); } cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age"); if(cJSON_IsNumber(age)) { printf("Age: %d\n", age->valueint); } cJSON *city = cJSON_GetObjectItemCaseSensitive(json, "city"); if(cJSON_IsString(city) && city->valuestring != NULL) { printf("City: %s\n", city->valuestring); } cJSON_Delete(json); return 0; }
在這個例子中,我們假設有一段JSON字符串:{"name":"John", "age":30, "city":"New York"},我們想要從中取得名字、年齡和城市的值。首先,我們使用cJSON_Parse函數(shù)來解析這個字符串,得到一個指向JSON對象的指針。然后,我們使用cJSON_GetObjectItemCaseSensitive函數(shù)來獲取對象內的成員名字,并通過判斷它的類型來獲取對應的值。
cJSON庫不僅能夠獲取JSON中的值,還可以方便地生成JSON字符串,具體可以參考其官方文檔和API。