C語言是一種高效的編程語言,可以用來處理各種數(shù)據(jù)類型和格式。在處理JSON數(shù)據(jù)時,C語言提供了很多有用的庫和函數(shù)。下面我們將介紹如何將JSON字符串轉(zhuǎn)換成對象數(shù)組。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { const char* json_text = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; json_error_t error; json_t* root = json_loads(json_text, 0, &error); if(!root) { printf("JSON解析錯誤: %s", error.text); return 1; } if(!json_is_object(root)) { printf("根節(jié)點不是JSON對象"); json_decref(root); return 1; } 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: %lld\n", key, json_integer_value(value)); } else if(json_is_real(value)) { printf("%s: %lf\n", key, json_real_value(value)); } else if(json_is_true(value)) { printf("%s: true\n", key); } else if(json_is_false(value)) { printf("%s: false\n", key); } else if(json_is_null(value)) { printf("%s: null\n", key); } } json_decref(root); return 0; }
上述代碼首先定義了一個JSON字符串,使用json_loads函數(shù)將其解析成JSON對象。接著判斷根節(jié)點是否為JSON對象,并分別處理JSON對象中的不同字段,按照不同類型分別輸出結(jié)果。最后,使用json_decref釋放JSON對象的內(nèi)存。通過這些步驟,我們可以將JSON字符串轉(zhuǎn)換為對象數(shù)組并對其進(jìn)行處理。