C語言是一門廣泛應(yīng)用于嵌入式領(lǐng)域的編程語言,而JSON是一種輕量級的數(shù)據(jù)交換格式。在C語言中,我們可以使用第三方庫來將JSON對象轉(zhuǎn)換為類對象數(shù)組。
#include <stdio.h> #include <jansson.h> typedef struct person{ char *name; int age; } Person; int main() { const char *json_str = "[{\"name\":\"Tom\", \"age\":18}, {\"name\":\"Jerry\", \"age\":22}]"; json_error_t error; json_t *root = json_loads(json_str, 0, &error); if(!root){ printf("json error on line %d: %s\n", error.line, error.text); return 1; } size_t size = json_array_size(root); Person persons[size]; for(int i=0; i在上述代碼中,我們使用了jansson庫來解析JSON字符串。首先,我們定義了一個包含name和age兩個屬性的Person結(jié)構(gòu)體。接著,我們將JSON字符串解析為json_t類型的root對象。如果解析失敗,則輸出錯誤信息并返回。如果解析成功,則通過json_array_size函數(shù)獲得JSON數(shù)組長度,創(chuàng)建一個長度為size的Person類型數(shù)組persons。接著,我們使用json_array_get函數(shù)遍歷JSON數(shù)組,并通過json_object_get函數(shù)獲得name和age屬性值,將其賦值給Person結(jié)構(gòu)體,然后將該結(jié)構(gòu)體添加到persons數(shù)組中。最后,我們需要調(diào)用json_decref函數(shù)釋放內(nèi)存并返回。
通過上述代碼,我們可以將JSON對象轉(zhuǎn)換為類對象數(shù)組,實現(xiàn)JSON數(shù)據(jù)的處理。