在C語言中,我們經(jīng)常需要將對象數(shù)組轉(zhuǎn)換為JSON字符串數(shù)組。這有助于我們將數(shù)據(jù)傳輸?shù)狡渌麘贸绦蚧蚓W(wǎng)絡,以便進行遠程數(shù)據(jù)傳輸。以下是如何在C語言中將對象數(shù)組轉(zhuǎn)換為JSON字符串數(shù)組的方法:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> typedef struct { char *name; int age; char *address; } Person; int main(){ // 存儲人員信息的數(shù)組 Person people[2] = { {"Alex", 25, "Beijing"}, {"Bob", 30, "Shanghai"} }; // 初始化JSON數(shù)組 json_t *root = json_array(); // 遍歷人員信息并添加到JSON數(shù)組中 for (int i = 0; i < sizeof(people) / sizeof(Person); i++) { json_t *person = json_object(); json_object_set(person, "name", json_string(people[i].name)); json_object_set(person, "age", json_integer(people[i].age)); json_object_set(person, "address", json_string(people[i].address)); json_array_append_new(root, person); } // 將JSON數(shù)組轉(zhuǎn)換為JSON字符串數(shù)組 int flags = JSON_INDENT(4) | JSON_PRESERVE_ORDER | JSON_ENCODE_ANY; char *jsonStr = json_dumps(root, flags); printf("%s", jsonStr); // 釋放JSON數(shù)組內(nèi)存 json_decref(root); return 0; }
在上面的示例中,我們首先定義了一個包含人員信息的結(jié)構(gòu)體Person,然后初始化了一個包含兩個人員信息的數(shù)組people。接下來,我們使用jansson庫創(chuàng)建了一個JSON數(shù)組,遍歷人員信息并添加到JSON數(shù)組中。最后,我們使用jansson庫的函數(shù)將JSON數(shù)組轉(zhuǎn)換為JSON字符串數(shù)組并打印出來。我們還釋放了JSON數(shù)組的內(nèi)存。