JSON是一種輕量級數(shù)據(jù)交換格式,支持各種編程語言。在C語言中,我們可以使用json-c庫來解析和創(chuàng)建JSON數(shù)據(jù)。其中,json-c庫提供了json_object類型來表示JSON對象,而json_object中的成員變量則對應了JSON對象中的key-value鍵值對。
#include <stdio.h> #include <json-c/json.h> int main() { // 創(chuàng)建JSON對象 struct json_object *obj = json_object_new_object(); // 添加鍵值對 json_object_object_add(obj, "name", json_object_new_string("John")); json_object_object_add(obj, "age", json_object_new_int(25)); json_object_object_add(obj, "isStudent", json_object_new_boolean(1)); // 打印JSON對象 printf("%s\n", json_object_to_json_string(obj)); // 釋放JSON對象內(nèi)存 json_object_put(obj); return 0; }
在上述代碼中,我們首先使用json_object_new_object()函數(shù)創(chuàng)建了一個JSON對象。接著,使用json_object_object_add()函數(shù)將鍵值對添加到JSON對象中,其中的json_object_new_string()、json_object_new_int()和json_object_new_boolean()函數(shù)分別創(chuàng)建了一個字符串、整數(shù)和布爾型的JSON value。
最后,使用json_object_to_json_string()函數(shù)將JSON對象轉(zhuǎn)換為JSON格式的字符串,并使用printf()函數(shù)將其打印出來。注意,打印的字符串中并沒有反斜線(\),因為json-c庫內(nèi)部已經(jīng)做了轉(zhuǎn)義處理。
在釋放JSON對象內(nèi)存時,我們需要使用json_object_put()函數(shù),為避免內(nèi)存泄漏。