在C語言中,解析JSON數據需要使用json-c庫,該庫提供了一個簡單的API用于解析和創建JSON數據。
#include <json-c/json.h>
首先,需要定義一個json_object對象變量來表示JSON數據??梢允褂胘son_object_new_object()函數來創建一個新的JSON對象:
json_object *my_json = json_object_new_object();
JSON對象可以包含鍵值對或數組。鍵值對可以使用json_object_object_add()函數添加。例如:
json_object_object_add(my_json, "name", json_object_new_string("Tom")); json_object_object_add(my_json, "age", json_object_new_int(25));
數組可以使用json_object_new_array()函數創建。添加元素可以使用json_object_array_add()函數。例如:
json_object *my_array = json_object_new_array(); json_object_array_add(my_array, json_object_new_int(5)); json_object_array_add(my_array, json_object_new_int(10)); json_object_object_add(my_json, "numbers", my_array);
解析JSON數據也很簡單??梢允褂胘son_tokener_parse()函數將JSON字符串轉換為json_object對象。例如:
const char *json_string = "{\"name\":\"Tom\",\"age\":25,\"numbers\":[5,10]}"; json_object *parsed_json = json_tokener_parse(json_string);
現在,parsed_json變量就包含了解析后的JSON數據??梢允褂胘son_object_object_get()或json_object_array_get_idx()函數來獲取JSON數據的元素。例如:
json_object *name_obj = json_object_object_get(parsed_json, "name"); const char *name_str = json_object_get_string(name_obj); json_object *numbers_array = json_object_object_get(parsed_json, "numbers"); int number1 = json_object_get_int(json_object_array_get_idx(numbers_array, 0)); int number2 = json_object_get_int(json_object_array_get_idx(numbers_array, 1));
以上就是使用C解析JSON數據的基本步驟。json-c庫還提供了豐富的API,可以用來修改和創建JSON數據??梢詤⒖糺son-c庫的官方文檔來了解更多信息。