當處理JSON字符串時,您可能會遇到嵌套的JSON對象,這些對象包含其他JSON對象或數(shù)組。在C語言中,您可以使用cJSON庫來解析嵌套的JSON。
首先,您需要將JSON字符串解析為cJSON對象。以下是一個簡單的示例:
const char* json_string = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"pets\":[{\"name\":\"Fluffy\",\"type\":\"cat\"},{\"name\":\"Fido\",\"type\":\"dog\"}]}";
cJSON* root = cJSON_Parse(json_string);
現(xiàn)在,您可以通過訪問cJSON對象的子對象和數(shù)組來訪問JSON數(shù)據(jù)。例如,以下代碼將打印出JSON字符串中第一個寵物的名稱:
cJSON* pets = cJSON_GetObjectItem(root, "pets");
cJSON* first_pet = cJSON_GetArrayItem(pets, 0);
cJSON* pet_name = cJSON_GetObjectItem(first_pet, "name");
printf("First pet's name: %s\n", pet_name->valuestring);
要訪問其他寵物,請使用相同的方法,并將索引更改為1、2等等。同樣,要訪問其他屬性,請將其名稱傳遞給
如果JSON字符串中有嵌套的對象,您可以使用
cJSON* nested_obj = cJSON_GetObjectItem(root, "nested_obj");
cJSON* nested_value = cJSON_GetObjectItem(nested_obj, "nested_value");
printf("Nested value: %d\n", nested_value->valueint);
嵌套的數(shù)組可以使用類似的方法訪問。
這是使用C語言解析嵌套JSON數(shù)據(jù)的簡單方法。cJSON庫在處理JSON時非常方便,并提供了許多有用的函數(shù)來處理各種數(shù)據(jù)類型。