在C語言中,我們可以使用第三方庫來解析JSON格式的字符串,比如JSON-C庫。
/* 引入JSON-C庫 */ #include <json-c/json.h> /* 假設有以下JSON字符串 */ char* json_str = "{\"name\":\"張三\",\"age\":18,\"isMale\":true}"; /* 解析JSON字符串 */ json_object* json_obj = json_tokener_parse(json_str); json_object* name_obj; json_object* age_obj; json_object* is_male_obj; /* 從JSON對象中取值 */ json_object_object_get_ex(json_obj, "name", &name_obj); json_object_object_get_ex(json_obj, "age", &age_obj); json_object_object_get_ex(json_obj, "isMale", &is_male_obj); printf("姓名:%s\n", json_object_get_string(name_obj)); printf("年齡:%d\n", json_object_get_int(age_obj)); printf("性別:%s\n", json_object_get_boolean(is_male_obj) ? "男" : "女");
在上面的示例中,我們使用了json-c庫的json_tokener_parse函數將JSON格式的字符串解析成了一個json_object對象。然后使用json_object_object_get_ex函數從JSON對象中取出對應的值。
在使用json_object_get_string函數獲取字符串類型的值時,需要注意返回的指針指向的是內部的緩存區,不要手動進行free。
而使用json_object_get_boolean函數獲取布爾類型的值時,需要進行一層三目運算符的處理,以輸出易讀的結果。