在現代的web開發和移動應用開發中,大量應用了json數據格式。為了能夠在C語言中解析json數組,我們可以使用cJSON庫。
#include "cJSON.h" #include <stdio.h> int main() { char* json_data = "[1, 2, 3, 4, {\"name\": \"John\", \"age\": 25}]"; cJSON* root = cJSON_Parse(json_data); if (root == NULL) { printf("Error: Json data is invalid.\n"); return 1; } if (root->type == cJSON_Array) { int array_size = cJSON_GetArraySize(root); printf("The array size is %d.\n", array_size); for (int i = 0; i< array_size; i++) { cJSON* item = cJSON_GetArrayItem(root, i); if (item->type == cJSON_Number) { printf("%d ", item->valueint); } else if (item->type == cJSON_Object) { cJSON* name_item = cJSON_GetObjectItem(item, "name"); cJSON* age_item = cJSON_GetObjectItem(item, "age"); printf("Name:%s Age:%d\n", name_item->valuestring, age_item->valueint); } } printf("\n"); } cJSON_Delete(root); return 0; }
以上代碼演示了如何解析一個json數組,并打印出其中的元素。在解析json數組時,我們可以先使用cJSON_Parse()方法將json字符串轉換為cJSON對象。然后通過cJSON_GetArraySize()方法獲取數組大小。接著可以通過cJSON_GetArrayItem()方法遍歷數組中的元素。在處理元素時,需要根據元素的類型進行不同的處理,例如在本例中,當元素為數字類型時,我們可以使用cJSON_Number類型獲取值,而當元素為對象類型時,則需要使用cJSON_GetObjectItem()方法提取對象中的屬性值。
上一篇vue2 length