C語言中的Json庫是一種輕量級(jí)的文件格式,很多開發(fā)者都選擇使用Json作為數(shù)據(jù)的傳輸和存儲(chǔ)格式。在某些情況下,我們需要將Json數(shù)據(jù)轉(zhuǎn)成嵌套Json數(shù)據(jù),這就需要使用到C語言中的Json庫。
#include <stdio.h> #include <string.h> #include <jansson.h> int main() { json_t *root, *list, *obj, *name, *age; // 創(chuàng)建一個(gè)Json對(duì)象 root = json_object(); // 創(chuàng)建一個(gè)Json列表 list = json_array(); // 創(chuàng)建Json對(duì)象1 obj = json_object(); name = json_string("張三"); age = json_integer(20); json_object_set(obj, "name", name); json_object_set(obj, "age", age); json_array_append(list, obj); // 創(chuàng)建Json對(duì)象2 obj = json_object(); name = json_string("李四"); age = json_integer(22); json_object_set(obj, "name", name); json_object_set(obj, "age", age); json_array_append(list, obj); // 將Json列表添加到Json對(duì)象中 json_object_set(root, "list", list); // 輸出Json對(duì)象 char *str = json_dumps(root, JSON_INDENT(4)); printf("%s\n", str); return 0; }
該程序的輸出結(jié)果如下:
{ "list": [ { "name": "張三", "age": 20 }, { "name": "李四", "age": 22 } ] }
通過該程序,我們可以看到如何將多個(gè)Json對(duì)象轉(zhuǎn)成嵌套Json數(shù)據(jù)。具體的實(shí)現(xiàn)步驟可以簡(jiǎn)單概括為:
- 創(chuàng)建一個(gè)Json對(duì)象
- 創(chuàng)建一個(gè)Json列表
- 將多個(gè)Json對(duì)象添加到Json列表中
- 將Json列表添加到Json對(duì)象中
- 輸出Json對(duì)象