JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,使用文本格式存儲(chǔ)數(shù)據(jù),有著良好的可讀性和可擴(kuò)展性。在GCC中,我們可以使用JSON作為中間結(jié)果的格式,進(jìn)行數(shù)據(jù)傳輸和解析。
#include <stdio.h> #include <json-c/json.h> int main() { json_object *jobj = json_object_new_object(); json_object *jstr = json_object_new_string("Hello World!"); json_object_object_add(jobj, "message", jstr); printf("%s\n", json_object_to_json_string(jobj)); return 0; }
上面的代碼演示了如何使用libjson-c庫中的函數(shù)來構(gòu)造一個(gè)JSON對(duì)象,并輸出為字符串格式。在這個(gè)例子中,我們創(chuàng)建了一個(gè)包含文本信息的JSON對(duì)象,并用json_object_to_json_string函數(shù)將其序列化成字符串。
除此之外,JSON還可以用于存儲(chǔ)和傳輸更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如數(shù)組和嵌套對(duì)象。
#include <stdio.h> #include <json-c/json.h> int main() { // 創(chuàng)建一個(gè)包含數(shù)組的JSON對(duì)象 json_object *jobj = json_object_new_object(); json_object *jarr = json_object_new_array(); json_object *jint1 = json_object_new_int(1); json_object *jint2 = json_object_new_int(2); json_object *jint3 = json_object_new_int(3); json_object_array_add(jarr, jint1); json_object_array_add(jarr, jint2); json_object_array_add(jarr, jint3); json_object_object_add(jobj, "numbers", jarr); // 創(chuàng)建一個(gè)包含嵌套對(duì)象的JSON對(duì)象 json_object *jobj2 = json_object_new_object(); json_object *jstr = json_object_new_string("Nested"); json_object_object_add(jobj2, "content", jstr); json_object_object_add(jobj, "nested", jobj2); printf("%s\n", json_object_to_json_string(jobj)); return 0; }
上面這個(gè)例子演示了如何創(chuàng)建包含數(shù)組和嵌套對(duì)象的JSON對(duì)象,并將其序列化成字符串格式。
在使用JSON作為中間結(jié)果的時(shí)候,需要注意不同語言之間的數(shù)據(jù)類型和轉(zhuǎn)換問題,以保證正確解析和傳輸數(shù)據(jù)。