在C語言中,有時需要將JSON格式的字符串轉換為對象數組。可以通過使用json-c庫來實現此操作。
#include <stdio.h> #include <json-c/json.h> int main() { char* json_string = "{ \"students\" : [{\"name\":\"Tom\", \"age\":21}, {\"name\":\"Jane\", \"age\":22}]}"; /* 解析json字符串 */ json_object *json_obj = json_tokener_parse(json_string); /* 獲取對象數組 */ json_object *students_json_obj = json_object_object_get(json_obj, "students"); int length = json_object_array_length(students_json_obj); /* 遍歷對象數組 */ for (int i = 0; i< length; i++) { json_object *student_json_obj = json_object_array_get_idx(students_json_obj, i); /* 獲取對象的屬性 */ json_object *name_json_obj = json_object_object_get(student_json_obj, "name"); json_object *age_json_obj = json_object_object_get(student_json_obj, "age"); const char* name = json_object_get_string(name_json_obj); int age = json_object_get_int(age_json_obj); printf("Name: %s, Age: %d\n", name, age); } /* 釋放內存 */ json_object_put(json_obj); return 0; }
在上面的代碼中,首先將JSON格式的字符串(json_string)解析為JSON對象(json_obj)。
然后,使用json_object_object_get函數獲取“students”屬性的值,并將其轉換為JSON對象數組(students_json_obj)。接下來,使用json_object_array_length函數獲取數組的長度,并循環遍歷每個對象。
在循環中,使用json_object_array_get_idx函數獲取對象數組中的特定對象(student_json_obj)。接下來,使用json_object_object_get函數獲取特定對象的屬性(name_json_obj和age_json_obj)。最后,使用json_object_get_string函數將JSON字符串轉換為C字符串,使用json_object_get_int函數將JSON整數轉換為C整數,并打印屬性值。
最后,使用json_object_put函數釋放分配的內存。
下一篇vue elint