C語言是一種用于操作系統、嵌入式系統和游戲等等環境下的編程語言。在這些領域中,對數據解析和處理的需求十分迫切。其中,JSON(JavaScript Object Notation)已成為一種被廣泛采用的數據格式。JSON是基于JavaScript語法的輕量級數據交換格式,由于結構簡單、易于解析,因此而受到了高度關注。
要在C語言中解析JSON字符串,需要用到JSON-C,它是針對C語言的JSON解析庫,可用于提取和操作JSON數據。通過指定JSON字符串為輸入,JSON-C返回一個由對象和數組組成的結構。解析出JSON中的數據后,我們可以使用C語言的其它庫和工具對其進行處理。
以下是一個演示JSON字符串解析為對象數組的C代碼:
#include在以上示例中,我們創建了一個JSON字符串:“[{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"},{\"name\":\"Lucy\",\"age\":20,\"gender\":\"female\"}]”,然后使用JSON-C庫中的json_tokener_parse()函數將其解析為JSON對象。 從JSON對象中獲取包含對象數組的JSON數組,并使用json_object_array_length()函數來獲取其長度,然后遍歷數組中的對象,然后獲取對象中的屬性并輸出。最后,我們使用json_object_put()函數釋放JSON對象以結束解析。 C語言和JSON-C庫能夠幫助我們輕松地解析JSON字符串并將其轉換為對象數組,并且這個過程非常快速和簡便,幾乎在任何項目中都可以使用。#include #include #include #define JSON_STRING "[{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"},{\"name\":\"Lucy\",\"age\":20,\"gender\":\"female\"}]" int main() { // 解析JSON字符串 json_object *json = json_tokener_parse(JSON_STRING); // 獲取對象數組的長度 int arr_len = json_object_array_length(json); // 遍歷對象數組 for (int i = 0; i< arr_len; i++) { // 獲取數組中的對象 json_object *obj = json_object_array_get_idx(json, i); // 獲取對象中的屬性 json_object *name = json_object_object_get(obj, "name"); json_object *age = json_object_object_get(obj, "age"); json_object *gender = json_object_object_get(obj, "gender"); // 打印屬性值 printf("Name: %s, Age: %d, Gender: %s\n", json_object_get_string(name), json_object_get_int(age), json_object_get_string(gender)); } // 釋放JSON對象 json_object_put(json); return 0; }
上一篇c 解析json多層嵌套
下一篇vue3 main