C語言中如何將多行數(shù)據(jù)轉(zhuǎn)換成Json字符串呢?
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { json_t *root = json_object(); //創(chuàng)建根節(jié)點(diǎn) json_t *array = json_array(); //創(chuàng)建數(shù)組節(jié)點(diǎn) json_object_set_new(root, "data", array); //將數(shù)組節(jié)點(diǎn)作為根節(jié)點(diǎn)的子節(jié)點(diǎn) char *data[] = {"hello", "world", "c", "language"}; for(int i=0; i<4; i++) { json_array_append_new(array, json_string(data[i])); //將data數(shù)組中的元素逐一添加到數(shù)組節(jié)點(diǎn)中 } char *json_str = json_dumps(root, JSON_INDENT(2)); //將根節(jié)點(diǎn)轉(zhuǎn)換成Json字符串 printf("%s", json_str); free(json_str); json_decref(root); return 0; }
上述代碼中,我們使用了第三方C庫jansson來處理Json數(shù)據(jù)。首先創(chuàng)建一個根節(jié)點(diǎn)root,然后創(chuàng)建一個數(shù)組節(jié)點(diǎn)array,并將array添加到root節(jié)點(diǎn)中。之后遍歷所給定的多行數(shù)據(jù),將數(shù)據(jù)添加到array節(jié)點(diǎn)中。最后使用json_dumps函數(shù)將root節(jié)點(diǎn)轉(zhuǎn)換成json字符串,并輸出到屏幕上。