JSON是一種數(shù)據(jù)交換格式,它是 JavaScript Object Notation 的縮寫。在C語言中,我們可以使用第三方庫或自己手寫代碼來解析、生成JSON數(shù)據(jù)。
/*示例代碼1: 創(chuàng)建JSON對象*/ #include "json-c/json.h" // 引入json-c庫 int main() { struct json_object *object = json_object_new_object(); json_object *name = json_object_new_string("Tom"); json_object *age = json_object_new_int(25); json_object_object_add(object, "name", name); json_object_object_add(object, "age", age); printf("%s\n", json_object_to_json_string(object)); // 輸出 {"name": "Tom", "age": 25} json_object_put(object); return 0; }
上述代碼演示了如何創(chuàng)建一個JSON對象,其中我們使用了json-c庫提供的json_object_new_*系列函數(shù)來創(chuàng)建JSON數(shù)據(jù)類型,如json_object_new_object創(chuàng)建一個JSON對象類型。
/*示例代碼2: 解析JSON數(shù)據(jù)*/ #include#include int main() { const char *json_string = "{\"name\": \"Tom\", \"age\": 25}"; // JSON數(shù)據(jù) json_object *json = json_tokener_parse(json_string); // 解析JSON數(shù)據(jù) json_object *name, *age; json_object_object_get_ex(json, "name", &name); // 獲取name屬性對應(yīng)的值 json_object_object_get_ex(json, "age", &age); // 獲取age屬性對應(yīng)的值 printf("name: %s\n", json_object_get_string(name)); // 輸出 name: Tom printf("age: %d\n", json_object_get_int(age)); // 輸出 age: 25 json_object_put(json); // 釋放內(nèi)存 return 0; }
上述代碼演示了如何解析JSON數(shù)據(jù),其中我們使用了json-c庫提供的json_tokener_parse函數(shù)來解析一個JSON字符串,并使用json_object_object_get_ex函數(shù)來獲取JSON對象中指定屬性的值。
總之,使用C語言進(jìn)行JSON數(shù)據(jù)的解析和生成也是很簡單的。只需要引入相關(guān)的庫或自己手寫代碼,就可以方便地操作JSON數(shù)據(jù)。
下一篇c 配置文件類json