很多網(wǎng)站和應(yīng)用程序都使用 JSON(JavaScript Object Notation)作為其數(shù)據(jù)交換格式。因為 C 語言是一種底層語言,它特別適合處理 JSON 數(shù)據(jù)。在 C 4.0 中,JSON 的解析和生成已經(jīng)變得更加容易。以下是一些使用 C 4.0 處理 JSON 數(shù)據(jù)的示例。
#include <stdio.h> #include <json-c/json.h> int main() { /* 創(chuàng)建 JSON 對象 */ json_object *student = json_object_new_object(); /* 在 JSON 對象中添加數(shù)據(jù) */ json_object_object_add(student, "name", json_object_new_string("小明")); json_object_object_add(student, "age", json_object_new_int(18)); json_object_object_add(student, "gender", json_object_new_string("male")); /* 將 JSON 對象轉(zhuǎn)換為字符串 */ const char *str = json_object_to_json_string(student); printf("%s\n", str); /* 釋放 JSON 對象 */ json_object_put(student); return 0; }
在上面的示例中,我們首先創(chuàng)建了一個 JSON 對象,并通過 json_object_object_add() 函數(shù)向其添加了一些數(shù)據(jù)。然后,我們調(diào)用 json_object_to_json_string() 函數(shù)將 JSON 對象轉(zhuǎn)換為字符串,并打印出來。最后,我們通過調(diào)用 json_object_put() 函數(shù)來釋放 JSON 對象的內(nèi)存。
下面是另一個示例,用于解析 JSON 字符串并訪問其數(shù)據(jù):
#include <stdio.h> #include <json-c/json.h> int main() { const char *str = "{ \"name\": \"小明\", \"age\": 18, \"gender\": \"male\" }"; /* 解析 JSON 字符串 */ json_object *student = json_tokener_parse(str); /* 訪問 JSON 對象中的數(shù)據(jù) */ json_object *name = json_object_object_get(student, "name"); json_object *age = json_object_object_get(student, "age"); json_object *gender = json_object_object_get(student, "gender"); printf("姓名:%s\n", json_object_get_string(name)); printf("年齡:%d\n", json_object_get_int(age)); printf("性別:%s\n", json_object_get_string(gender)); /* 釋放 JSON 對象 */ json_object_put(student); return 0; }
在上面的示例中,我們首先定義了一個 JSON 字符串并解析它,然后訪問 JSON 對象中的各個數(shù)據(jù),并將它們打印出來。最后,我們通過調(diào)用 json_object_put() 函數(shù)來釋放 JSON 對象的內(nèi)存。