C語言中,經常需要讀取JSON格式的數據。JSON格式是現在比較常用的一種數據交換格式。在C語言中,我們可以使用json-c庫的函數,來解析JSON格式。下面是一個示例的JSON格式:
{ "name": "張三", "age": 18, "score": { "math": 90, "english": 80 } }
假設我們想要讀取score字段中的math值,可以像下面這樣寫代碼:
#include#include int main() { char *json_str = "{ \ \"name\": \"張三\", \ \"age\": 18, \ \"score\": { \ \"math\": 90, \ \"english\": 80 \ } \ }"; struct json_object *root_obj = json_tokener_parse(json_str); struct json_object *score_obj = NULL; struct json_object *math_obj = NULL; int math_score = 0; if (json_object_object_get_ex(root_obj, "score", &score_obj)) { if (json_object_object_get_ex(score_obj, "math", &math_obj)) { math_score = json_object_get_int(math_obj); } } printf("math_score = %d\n", math_score); json_object_put(root_obj); return 0; }
這段代碼執行后,輸出的結果是:
math_score = 90
代碼中使用了json_object_object_get_ex()函數,來獲取JSON對象中的字段值。如果獲取成功,就將獲取到的值存放到變量中。需要注意的是,解析JSON格式的字符串后,要使用json_object_put()函數釋放資源。