在使用C語言解析JSON數據時,經常需要遍歷JSON數據的鍵值對。本文將介紹如何使用C語言遍歷JSON數據中的鍵值對。
// JSON數據示例 { "name": "Tom", "age": 18, "address": { "city": "Beijing", "street": "Tiananmen Square" } } // C語言遍歷JSON數據 json_t *root = json_load_file("data.json", 0, NULL); json_t *value; // 遍歷頂層鍵值對 const char *key; json_object_foreach(root, key, value) { if (json_is_string(value)) { // 字符串類型 printf("%s: %s\n", key, json_string_value(value)); } else if (json_is_integer(value)) { // 整數類型 printf("%s: %ld\n", key, json_integer_value(value)); } else if (json_is_object(value)) { // 對象類型 printf("%s:\n", key); json_t *sub_value; const char *sub_key; // 遍歷子對象的鍵值對 json_object_foreach(value, sub_key, sub_value) { if (json_is_string(sub_value)) { printf(" %s: %s\n", sub_key, json_string_value(sub_value)); } else if (json_is_integer(sub_value)) { printf(" %s: %ld\n", sub_key, json_integer_value(sub_value)); } } } }
代碼中使用了libjson-c庫中的json_t類型來存儲JSON數據。使用json_object_foreach函數可以遍歷JSON對象中的鍵值對。如果鍵對應的值是字符串類型,可以使用json_string_value函數獲取字符串值;如果是整數類型,可以使用json_integer_value獲取整數值;如果是對象類型,可以繼續遍歷子對象中的鍵值對。
使用C語言遍歷JSON數據的方法簡單易懂,適用于需要高效處理大量JSON數據的場景。