C語(yǔ)言的數(shù)據(jù)類型常常被用在一些硬件、嵌入式等領(lǐng)域中,而JSON作為一種輕量級(jí)數(shù)據(jù)交換格式,這使得將C數(shù)據(jù)類型轉(zhuǎn)換成JSON成為了一項(xiàng)必要的工作。而C Type to JSON就是能夠在C語(yǔ)言中將C數(shù)據(jù)類型轉(zhuǎn)換成JSON格式數(shù)據(jù)的一種解析庫(kù)。
#include "ctj.h" #include#include int main() { char json_str[100]; int a = 100; double b = 3.14; char *c = "hello"; ctj_object_t *obj = ctj_create_object(); ctj_add_int_to_object(obj, "a", a); ctj_add_number_to_object(obj, "b", b); ctj_add_string_to_object(obj, "c", c); ctj_serialize_to_string(obj, json_str, 100); printf("%s\n", json_str); ctj_free_object(obj); return 0; }
在這個(gè)示例程序中,我們首先創(chuàng)建了一個(gè)ctj_object_t類型的對(duì)象,然后通過(guò)調(diào)用ctj_add_xxx_to_object()方法將需要轉(zhuǎn)換的C數(shù)據(jù)類型添加到這個(gè)對(duì)象中,最后通過(guò)ctj_serialize_to_string()方法將這個(gè)對(duì)象轉(zhuǎn)換成JSON字符串。
值得注意的是,由于C語(yǔ)言中沒(méi)有像JSON中那樣的null類型,所以ctj_add_xxx_to_object()方法的第一個(gè)參數(shù)都需要是非空指針。另外,C Type to JSON庫(kù)中還提供了一些其他的方法來(lái)支持更多的C數(shù)據(jù)類型的轉(zhuǎn)換,具體可參考庫(kù)文檔。