JSON(JavaScript Object Notation)是一種常用的數據格式,常用于 Web 應用程序間的數據傳輸。 使用 C 語言調用 JSON 數據可以幫助我們更加方便地處理數據。
{ "name": "小明", "age": 18, "gender": "male", "hobbies": ["打游戲", "聽音樂", "看電影"] }
使用 C 語言調用 JSON 數據需要引入 json-c 庫,該庫提供了一些 API 來處理 JSON 數據。
#include <stdio.h> #include <json-c/json.h> int main() { // 確定 JSON 數據 const char *json_str = "{ \"name\": \"小明\", \"age\": 18, \"gender\": \"male\", \"hobbies\": [\"打游戲\", \"聽音樂\", \"看電影\"] }"; // 解析 JSON 數據 struct json_object *root_obj = json_tokener_parse(json_str); // 獲取 JSON 數據中的某個字段 struct json_object *name_obj = json_object_object_get(root_obj, "name"); const char *name = json_object_get_string(name_obj); printf("Name: %s\n", name); // 獲取 JSON 數據中的數組 struct json_object *hobbies_obj = json_object_object_get(root_obj, "hobbies"); int hobbies_len = json_object_array_length(hobbies_obj); printf("Hobbies:\n"); for (int i = 0; i< hobbies_len; i++) { struct json_object *hobby_obj = json_object_array_get_idx(hobbies_obj, i); const char *hobby = json_object_get_string(hobby_obj); printf("- %s\n", hobby); } // 釋放對象 json_object_put(root_obj); return 0; }
在以上代碼中,我們使用了 json_tokener_parse() 函數將 JSON 字符串解析成了一個 JSON 對象。然后我們使用 json_object_object_get() 函數和 json_object_array_get_idx() 函數獲取了 JSON 數據中的某個字段和某個數組中的元素。最后要記得使用 json_object_put() 函數來釋放對象。