JSON是一種輕量級的數據交換格式,它可以在不同的編程語言之間傳遞數據。C語言也可以使用JSON數據,通過Json-C這個庫。
{ "name": "張三", "age": 25, "education": [ { "school": "清華大學", "major": "計算機科學與技術" }, { "school": "北京大學", "major": "管理學" } ] }
在使用Json-C庫時,可以首先把JSON數據的內容讀入一個json_object對象中:
json_object *jobj; jobj = json_tokener_parse(json_data);
然后可以通過object_object_get函數獲取JSON數據中的某個鍵值對,或者使用json_object_object_foreach函數遍歷整個JSON數據:
json_object *name; name = json_object_object_get(jobj, "name"); printf("Name: %s\n", json_object_get_string(name)); json_object *education; json_object_object_get_ex(jobj, "education", &education); int arraylen = json_object_array_length(education); for (int i = 0; i< arraylen; i++) { json_object *edu_item = json_object_array_get_idx(education, i); json_object *school; json_object_object_get_ex(edu_item, "school", &school); printf("Education %d - School: %s\n", i+1, json_object_get_string(school)); json_object *major; json_object_object_get_ex(edu_item, "major", &major); printf("Education %d - Major: %s\n", i+1, json_object_get_string(major)); }
最后使用json_object_put函數釋放掉json_object對象:
json_object_put(jobj);
Json-C庫提供了一種簡單實用的方式,使得C語言可以方便地處理JSON數據,這在需要跨語言進行數據交換的時候,非常有用。