在C語言中,遍歷JSON List可以使用第三方的JSON庫來實現(xiàn),常用的有jansson和cJSON等。本文以cJSON為例來講解如何遍歷JSON List。
// JSON串 const char* json_string = '[{"name":"Tom","age":18},{"name":"Jerry","age":20}]'; // 解析JSON串 cJSON* root = cJSON_Parse(json_string); if (root == NULL) { // 解析失敗 return; } // 獲取JSON List cJSON* json_list = cJSON_GetArrayItem(root, 0); // 遍歷JSON List int list_size = cJSON_GetArraySize(json_list); for (int i = 0; i< list_size; i++) { cJSON* item = cJSON_GetArrayItem(json_list, i); // 獲取name和age cJSON* name = cJSON_GetObjectItem(item, "name"); cJSON* age = cJSON_GetObjectItem(item, "age"); // 打印name和age printf("name:%s, age:%d\n", name->valuestring, age->valueint); } // 釋放內(nèi)存 cJSON_Delete(root);
首先,將要解析的JSON串定義為一個字符串常量。接著,使用cJSON_Parse函數(shù)將字符串解析成一個cJSON對象,如果解析失敗,返回值為NULL。然后,通過cJSON_GetArrayItem函數(shù)獲取JSON List對象。接著,使用cJSON_GetArraySize獲取JSON List中元素的個數(shù),循環(huán)遍歷每個JSON對象。在循環(huán)中,使用cJSON_GetArrayItem函數(shù)獲取具體的JSON對象,在獲取name和age等具體字段的值。遍歷結(jié)束后,使用cJSON_Delete函數(shù)釋放內(nèi)存。
以上就是使用C語言遍歷JSON List的簡單步驟和示例代碼。使用第三方JSON庫如果在編譯時有找不到庫文件的問題,需要使用-l參數(shù)指定鏈接庫。