欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 字符串json轉對象數組

張吉惟2年前9瀏覽0評論

在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函數釋放分配的內存。