在C語言中獲取JSON數據并將其格式化是一項重要的任務,因為JSON是現代API和網絡通信中廣泛使用的數據格式之一。在這篇文章中,我們將介紹如何使用C語言來獲取JSON數據,將其解析為程序可以處理的格式,并將其格式化以使其易于閱讀和理解。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { char *json_string = "{\"name\":\"John Smith\",\"age\":35}"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if (!root) { fprintf(stderr, "error on line %d: %s\n", error.line, error.text); return 1; } printf("Name: %s\n", json_string_value(json_object_get(root, "name"))); printf("Age: %d\n", json_integer_value(json_object_get(root, "age"))); json_decref(root); return 0; }
代碼中使用的是jansson庫,它是一個流行的C語言庫,用于解析和生成JSON數據。使用json_loads函數將JSON字符串加載到json_t結構體中。一旦載入,您可以使用json_object_get函數來訪問特定的JSON對象屬性,并使用json_string_value和 json_integer_value函數來讀取其值。最后,使用json_decref函數釋放內存。
對于更復雜的JSON數據,您可能需要使用循環和條件語句來遍歷JSON對象的列表或數組等。借助json_unpack和json_pack函數,您可以將JSON轉換為C語言中的其他結構,如數組和結構體等。
最后,為了方便調試和顯示,您可以使用格式化選項將JSON數據輸出為易于理解的格式,例如:
{ "name": "John Smith", "age": 35 }
這可以通過使用json_dump函數來實現:
json_dump(root, stdout, JSON_INDENT(4));
將JSON格式化輸出到控制臺或文件中,使其更加直觀。使用這些技術,您可以輕松地在C語言中獲取和處理JSON數據。