JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,常用于Web應用程序之間的數據傳輸。C語言也提供了一些解析JSON字符串的庫,其中常用的就是 cJSON。
假設我們有以下JSON字符串:
{"list": [{"name": "張三", "age": 18}, {"name": "李四", "age": 20}]}
它表示一個名為list的數組,其中包含兩個對象,每個對象包含一個name和一個age屬性。我們可以使用cJSON庫來解析這個JSON字符串并訪問它的屬性。
cJSON *root = cJSON_Parse(json); if(root != NULL) { cJSON *list = cJSON_GetObjectItem(root, "list"); if(list != NULL && cJSON_IsArray(list)) { int size = cJSON_GetArraySize(list); for(int i=0; i<size; i++) { cJSON *item = cJSON_GetArrayItem(list, i); if(item != NULL && cJSON_IsObject(item)) { cJSON *name = cJSON_GetObjectItem(item, "name"); cJSON *age = cJSON_GetObjectItem(item, "age"); if(name != NULL && cJSON_IsString(name)) printf("name: %s ", name->valuestring); if(age != NULL && cJSON_IsNumber(age)) printf("age: %d\n", age->valueint); } } } cJSON_Delete(root); }
在這個代碼中,我們首先使用cJSON_Parse函數將JSON字符串解析為cJSON對象。然后使用cJSON_GetObjectItem函數獲取name為list的屬性,并判斷它是否是一個數組。如果是,我們可以使用cJSON_GetArraySize函數獲取數組大小,然后通過cJSON_GetArrayItem函數獲取每個數組元素。在獲取每個對象之后,我們再使用cJSON_GetObjectItem函數獲取它們的屬性值并將其打印出來。最后,我們應該使用cJSON_Delete函數釋放cJSON對象。
上一篇vue $emit源碼
下一篇mysql讀取原理