C JSON轉動態對象數組是一種十分有用的技術,它可以方便的將 JSON 數據轉換為動態對象數組。
例如下面的 JSON 數據:
{ "name": "John", "age": 30, "city": "New York", "pets": [ {"name": "Fluffy", "species": "cat", "age": 4}, {"name": "Spot", "species": "dog", "age": 7} ] }
我們可以使用 C 語言中的 cJSON 庫將它轉換為動態對象數組:
cJSON *root = cJSON_Parse(json_str); if (root != NULL && cJSON_IsObject(root)) { cJSON *name = cJSON_GetObjectItem(root, "name"); char *name_str = cJSON_GetStringValue(name); cJSON *age = cJSON_GetObjectItem(root, "age"); int age_int = cJSON_GetNumberValue(age); cJSON *city = cJSON_GetObjectItem(root, "city"); char *city_str = cJSON_GetStringValue(city); cJSON *pets = cJSON_GetObjectItem(root, "pets"); int pets_size = cJSON_GetArraySize(pets); for (int i = 0; i< pets_size; i++) { cJSON *pet = cJSON_GetArrayItem(pets, i); cJSON *pet_name = cJSON_GetObjectItem(pet, "name"); char *pet_name_str = cJSON_GetStringValue(pet_name); cJSON *pet_species = cJSON_GetObjectItem(pet, "species"); char *pet_species_str = cJSON_GetStringValue(pet_species); cJSON *pet_age = cJSON_GetObjectItem(pet, "age"); int pet_age_int = cJSON_GetNumberValue(pet_age); } }
通過上述代碼,我們可以將 JSON 數據轉換為動態對象數組,并從中提取出我們需要的數據。