JSON是一種輕量級的數(shù)據(jù)交換格式,以易于人讀和編寫、易于機器解析和生成為特點,廣泛應(yīng)用于Web應(yīng)用程序中。C語言是一種廣泛使用的編程語言,其應(yīng)用范圍非常廣泛。使用C語言調(diào)用JSON庫可以快速、方便地處理JSON格式的數(shù)據(jù)。
#include <jansson.h> int main() { //創(chuàng)建json對象 json_t *json = json_object(); //添加key-value json_object_set_new(json, "name", json_string("張三")); json_object_set_new(json, "age", json_integer(18)); json_object_set_new(json, "married", json_boolean(0)); //將json對象轉(zhuǎn)為字符串 char *jsonStr = json_dumps(json, JSON_INDENT(4)); printf("jsonStr=%s\n", jsonStr); //釋放json對象 json_decref(json); free(jsonStr); return 0; }
以上代碼演示了如何使用jansson庫創(chuàng)建一個簡單的JSON對象,添加屬性,將其轉(zhuǎn)換為字符串,并釋放對象。JSON_INDENT(4)參數(shù)表示使用4個空格進行縮進。
除了添加key-value,還可以添加數(shù)組、對象等復(fù)雜類型。例如,以下代碼演示了如何將一個簡單的JSON字符串解析為一個JSON對象,并訪問其中的屬性。
//JSON字符串 char *jsonStr = "{ \"name\": \"張三\", \"age\": 18 }"; //解析json字符串 json_error_t error; json_t *root = json_loads(jsonStr, 0, &error); //獲取屬性值 json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); //打印屬性值 printf("name=%s\n", json_string_value(name)); printf("age=%d\n", (int)json_integer_value(age)); //釋放json對象和字符串 json_decref(root); free(jsonStr);
以上代碼演示了如何將一個JSON字符串解析為JSON對象,并訪問其中的屬性。json_string_value和json_integer_value函數(shù)可以用于提取字符串和整數(shù)類型的屬性值。json_decref函數(shù)用于釋放JSON對象。
總之,使用C語言調(diào)用JSON庫可以方便、快捷地處理JSON格式的數(shù)據(jù)。要使用JSON庫,需要引入相應(yīng)的庫頭文件,如jansson.h,并使用相應(yīng)的函數(shù)創(chuàng)建、操作和釋放JSON對象。
上一篇c語言輸出json