json是一種輕量級的數據交換格式,而在c語言中打印json對象也是比較常見的操作。下面我們就來介紹一下如何在c語言中打印json對象。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { const char *json_str = "{\"name\":\"Jack\",\"age\":23,\"gender\":\"Male\"}"; json_t *root; json_error_t error; root = json_loads(json_str, JSON_DECODE_ANY, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } char *dump = json_dumps(root, JSON_INDENT(2) | JSON_PRESERVE_ORDER | JSON_ENCODE_ANY); printf("%s\n", dump); free(dump); json_decref(root); return 0; }
上面的代碼首先定義了一個json字符串,然后調用json_loads函數將其轉化為json_t類型的對象root。其中JSON_DECODE_ANY表示允許該對象中含有任何元素,而error用于描述轉化過程中的錯誤信息。接著,我們調用json_dumps方法將root對象中的信息以縮進為2,按原順序,編碼任意的方式轉化為JSON字符串。最后,將該字符串打印出來。
需要注意的是,我們在使用json_t時,應該在最后一步調用json_decref方法來釋放動態分配的內存。否則,一旦內存泄漏,則會導致程序異常。
上一篇doc轉json
下一篇python 爬圖片庫