在C語言中,我們經常需要將Json格式的數據轉換為對象數組,以便更方便地處理數據。下面我們就來介紹一下如何在C語言中實現Json到對象數組的轉換。
#include <stdio.h> #include <jansson.h> int main() { char* json_str = "{\"name\":\"Tom\", \"age\":18}"; json_error_t error; json_t* root = json_loads(json_str, JSON_DECODE_ANY, &error); if (!root) { printf("Json加載失敗:%s", error.text); return 1; } if (!json_is_object(root)) { printf("Json文件格式錯誤: 不是一個對象"); return 1; } int length = json_object_size(root); json_t* value; const char* key; int i = 0; while ((key = json_object_iter_key(json_object_iter_at(root, i)))) { value = json_object_iter_value(json_object_iter_at(root, i)); i++; printf("%s: ", key); switch (json_typeof(value)) { case JSON_OBJECT: printf("%s", "對象"); break; case JSON_ARRAY: printf("%s", "數組"); break; case JSON_STRING: printf("%s", json_string_value(value)); break; case JSON_INTEGER: printf("%lld", json_integer_value(value)); break; case JSON_REAL: printf("%lf", json_real_value(value)); break; case JSON_TRUE: printf("%s", "true"); break; case JSON_FALSE: printf("%s", "false"); break; case JSON_NULL: printf("%s", "null"); break; default: printf("%s", ""); } printf("\n"); } // 釋放json對象 json_decref(root); return 0; }
在上面的代碼中,我們使用了jansson這個C語言的json庫來幫助我們實現Json到對象數組的轉換。其中json_loads函數用于加載Json字符串,json_object_size函數用于獲取Json對象的大小,json_object_iter_key和json_object_iter_value函數用于遍歷Json對象的鍵值對。
當然,這只是實現Json到對象數組轉換的一種簡單方法,實際上根據Json數據的結構不同,我們可能需要使用不同的方法來進行轉換。但總的來說,使用jansson庫可以很方便地在C語言中處理Json數據。
上一篇python 矩陣列加法
下一篇python 爬取全部頁