JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,它的出現(xiàn)方便了不同語(yǔ)言和平臺(tái)間的數(shù)據(jù)傳遞。而在C語(yǔ)言中,我們可以通過(guò)使用相關(guān)的庫(kù)來(lái)進(jìn)行JSON的操作。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(void) { // 創(chuàng)建一個(gè)JSON對(duì)象 json_t* root = json_object(); // 向JSON對(duì)象中添加key-value對(duì) json_object_set_new(root, "name", json_string("John")); json_object_set_new(root, "age", json_integer(25)); json_object_set_new(root, "isMarried", json_false()); // 將JSON對(duì)象轉(zhuǎn)換為字符串 char* jsonStr = json_dumps(root, JSON_INDENT(2)); printf("%s\n", jsonStr); // 釋放內(nèi)存 free(jsonStr); json_decref(root); return 0; }
在上面的代碼中,我們使用了jansson庫(kù)來(lái)創(chuàng)建一個(gè)JSON對(duì)象,并向其中添加了一些key-value對(duì)。最后調(diào)用json_dumps()函數(shù)將JSON對(duì)象轉(zhuǎn)換為字符串,json_dumps()函數(shù)的第二個(gè)參數(shù)使用了JSON_INDENT(2)參數(shù),它表示輸出JSON字符串時(shí)進(jìn)行縮進(jìn)。
除了以上的操作,jansson庫(kù)還提供了很多其他的函數(shù),如可以從一個(gè)字符串中解析出JSON對(duì)象、獲取JSON對(duì)象中的值、遍歷JSON對(duì)象等。
總而言之,jansson庫(kù)為C語(yǔ)言操作JSON提供了很方便的工具,我們可以根據(jù)實(shí)際需求來(lái)選擇使用哪些函數(shù)來(lái)實(shí)現(xiàn)我們的JSON操作。