接下來,我們來看一個示例JSON字符串數組:
[
{
"name": "Alice",
"age": 20
},
{
"name": "Bob",
"age": 25
},
{
"name": "Cindy",
"age": 30
}
]
使用cJSON解析JSON字符串數組的步驟如下:
- 將JSON字符串數組解析成cJSON數組對象。
- 遍歷cJSON數組對象,將每個元素轉換成cJSON對象。
- 從cJSON對象中獲取所需的數據。
下面是解析示例JSON字符串數組的代碼:
char *json_str = "[
{
\"name\": \"Alice\",
\"age\": 20
},
{
\"name\": \"Bob\",
\"age\": 25
},
{
\"name\": \"Cindy\",
\"age\": 30
}
]";
cJSON *json_array = cJSON_Parse(json_str);
if (json_array == NULL || !cJSON_IsArray(json_array)) {
printf("json string is not an array\n");
return;
}
int array_size = cJSON_GetArraySize(json_array);
for (int i = 0; i< array_size; i++) {
cJSON *json_obj = cJSON_GetArrayItem(json_array, i);
char *name_str = cJSON_GetObjectItem(json_obj, "name")->valuestring;
int age_int = cJSON_GetObjectItem(json_obj, "age")->valueint;
printf("name: %s, age: %d\n", name_str, age_int);
}
代碼解釋:
- json_str:示例JSON字符串數組。
- json_array:使用cJSON_Parse將JSON字符串解析成cJSON數組對象。
- json_obj:從cJSON數組對象中獲取每個元素,將其轉換成cJSON對象。
- name_str和age_int:從cJSON對象中獲取各自的值。
以上就是使用cJSON解析JSON字符串數組的方法。