色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c json動態解析對象數組

錢諍諍2年前9瀏覽0評論

在C語言中,JSON數據的解析是一個非常常見的操作。對象數組是一種復雜的JSON數據類型,它由多個JSON對象組成,并按照固定的順序排列。C語言中可以使用cJSON庫來動態解析對象數組。

cJSON* root = cJSON_Parse(json_string); //解析JSON字符串為cJSON對象
if(root != NULL) { //判斷對象是否解析成功
cJSON* array = cJSON_GetObjectItem(root, "array"); //獲取對象數組對應的cJSON對象
if(array != NULL && cJSON_IsArray(array)) { //判斷對象數組是否存在且為數組類型
int count = cJSON_GetArraySize(array); //獲取對象數組的元素個數
for(int i = 0; i< count; i++) { //遍歷所有元素
cJSON* obj = cJSON_GetArrayItem(array, i); //獲取數組元素對應的cJSON對象
if(obj != NULL && cJSON_IsObject(obj)) { //判斷對象是否存在且為對象類型
cJSON* name = cJSON_GetObjectItem(obj, "name"); //獲取對象屬性中的name對應的cJSON對象
if(name != NULL && cJSON_IsString(name)) { //判斷name屬性是否存在且為字符串類型
printf("name: %s\n", name->valuestring); //輸出name屬性的值
}
cJSON* age = cJSON_GetObjectItem(obj, "age"); //獲取對象屬性中的age對應的cJSON對象
if(age != NULL && cJSON_IsNumber(age)) { //判斷age屬性是否存在且為數字類型
printf("age: %d\n", age->valueint); //輸出age屬性的值
}
}
}
}
}
cJSON_Delete(root); //釋放cJSON對象占用的內存

在代碼中,首先通過cJSON_Parse函數將JSON字符串解析為cJSON對象。然后通過cJSON_GetObjectItem函數獲取對象數組對應的cJSON對象。判斷對象數組是否存在且為數組類型,通過cJSON_GetArraySize函數獲取對象數組的元素個數,遍歷所有元素,通過cJSON_GetArrayItem函數獲取數組元素對應的cJSON對象。判斷對象是否存在且為對象類型,通過cJSON_GetObjectItem函數獲取對象屬性中的name和age對應的cJSON對象。判斷屬性是否存在且為正確的數據類型,輸出屬性的值。最后通過cJSON_Delete函數釋放cJSON對象占用的內存。