JSON是一種輕量級的數(shù)據(jù)格式,易于傳輸和解析,被廣泛應(yīng)用于互聯(lián)網(wǎng)接口設(shè)計中。在C語言中,我們可以通過第三方庫方便地實現(xiàn)JSON的傳遞和解析。
以下是一個簡單的例子,演示了如何使用C語言進(jìn)行JSON傳遞和解析:
#include <stdio.h> #include <jansson.h> int main() { /* 創(chuàng)建JSON對象 */ json_t *json = json_object(); json_object_set_new(json, "name", json_string("張三")); json_object_set_new(json, "age", json_integer(20)); /* 打印JSON對象 */ char *json_str = json_dumps(json, JSON_INDENT(4)); printf("%s\n", json_str); /* 解析JSON對象 */ json_t *parsed_json = json_loads(json_str, 0, NULL); const char *name = json_string_value(json_object_get(parsed_json, "name")); int age = json_integer_value(json_object_get(parsed_json, "age")); printf("姓名:%s,年齡:%d\n", name, age); /* 釋放內(nèi)存 */ free(json_str); json_decref(json); json_decref(parsed_json); return 0; }
以上代碼中,我們首先使用json_object_create函數(shù)創(chuàng)建了一個JSON對象,利用json_object_set_new函數(shù)給該JSON對象添加了兩個鍵值對:姓名和年齡。然后,使用json_dumps函數(shù)將JSON對象轉(zhuǎn)換成字符串并打印出來,以便查看JSON對象的內(nèi)容。
接下來,我們使用json_loads函數(shù)將上面打印出來的JSON字符串轉(zhuǎn)換成JSON對象,然后通過json_object_get和json_string_value、json_integer_value等函數(shù)獲取并打印出JSON對象中的數(shù)據(jù)。
最后,我們使用json_decref函數(shù)來釋放內(nèi)存,釋放JSON對象和解析后的JSON對象所占用的內(nèi)存空間。