在C語(yǔ)言中,解析JSON數(shù)據(jù)需要使用json-c庫(kù),該庫(kù)提供了一個(gè)簡(jiǎn)單的API用于解析和創(chuàng)建JSON數(shù)據(jù)。
#include <json-c/json.h>
首先,需要定義一個(gè)json_object對(duì)象變量來(lái)表示JSON數(shù)據(jù)。可以使用json_object_new_object()函數(shù)來(lái)創(chuàng)建一個(gè)新的JSON對(duì)象:
json_object *my_json = json_object_new_object();
JSON對(duì)象可以包含鍵值對(duì)或數(shù)組。鍵值對(duì)可以使用json_object_object_add()函數(shù)添加。例如:
json_object_object_add(my_json, "name", json_object_new_string("Tom")); json_object_object_add(my_json, "age", json_object_new_int(25));
數(shù)組可以使用json_object_new_array()函數(shù)創(chuàng)建。添加元素可以使用json_object_array_add()函數(shù)。例如:
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數(shù)據(jù)也很簡(jiǎn)單。可以使用json_tokener_parse()函數(shù)將JSON字符串轉(zhuǎn)換為json_object對(duì)象。例如:
const char *json_string = "{\"name\":\"Tom\",\"age\":25,\"numbers\":[5,10]}"; json_object *parsed_json = json_tokener_parse(json_string);
現(xiàn)在,parsed_json變量就包含了解析后的JSON數(shù)據(jù)。可以使用json_object_object_get()或json_object_array_get_idx()函數(shù)來(lái)獲取JSON數(shù)據(jù)的元素。例如:
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數(shù)據(jù)的基本步驟。json-c庫(kù)還提供了豐富的API,可以用來(lái)修改和創(chuàng)建JSON數(shù)據(jù)。可以參考json-c庫(kù)的官方文檔來(lái)了解更多信息。