在C語言中,JSON的操作需要引用第三方庫,在此我們使用cJSON這個庫進行JSON的解析和構建。
首先我們來構建一個JSON數組:
cJSON* array = cJSON_CreateArray(); cJSON* element1 = cJSON_CreateObject(); cJSON_AddStringToObject(element1, "name", "Michael"); cJSON_AddNumberToObject(element1, "age", 25); cJSON_AddItemToArray(array, element1); cJSON* element2 = cJSON_CreateObject(); cJSON_AddStringToObject(element2, "name", "Lucas"); cJSON_AddNumberToObject(element2, "age", 28); cJSON_AddItemToArray(array, element2);
以上代碼中,首先使用cJSON_CreateArray()創建了一個JSON數組對象,然后創建了兩個JSON對象element1和element2,分別表示數組中的兩個元素,使用cJSON_AddStringToObject()和cJSON_AddNumberToObject()向每個元素中添加了兩個屬性,最后使用cJSON_AddItemToArray()向數組中添加了這兩個元素。
接下來我們來解析這個JSON數組:
cJSON* array = cJSON_Parse(json_str); for (int i = 0; i< cJSON_GetArraySize(array); i++) { cJSON* element = cJSON_GetArrayItem(array, i); char* name = cJSON_GetObjectItem(element, "name")->valuestring; int age = cJSON_GetObjectItem(element, "age")->valueint; printf("name:%s, age:%d\n", name, age); }
以上代碼中,首先使用cJSON_Parse()將一個JSON字符串解析成JSON數組對象,然后使用cJSON_GetArraySize()獲取數組元素個數,循環使用cJSON_GetArrayItem()獲取數組中的每個元素,使用cJSON_GetObjectItem()獲取元素中的屬性值,最后輸出每個元素的屬性。
上一篇html底部的版權代碼