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

c 解析post返回的json字符串數組

錢瀠龍2年前8瀏覽0評論

在進行web開發中,前端向后端發送請求時,通常采用POST方式,并以JSON字符串的形式傳遞數據。如果后端返回的數據也是JSON字符串數組,則前端需要使用C語言解析這些數據。

C語言可以使用json-c庫來解析JSON數據,該庫提供了許多方便的函數來解析JSON數據。下面是一個解析JSON字符串數組的示例代碼:

#include <stdio.h>
#include <json-c/json.h>
int main() {
char *json_str = "[{\"name\": \"Tom\", \"age\": 20}, {\"name\": \"Jerry\", \"age\": 18}]";
struct json_object *json_obj = json_tokener_parse(json_str);
if (json_type_array != json_object_get_type(json_obj)) {
printf("JSON object is not an array.\n");
return -1;
}
int array_len = json_object_array_length(json_obj);
for (int i = 0; i < array_len; i++) {
struct json_object *obj = json_object_array_get_idx(json_obj, i);
struct json_object *name_obj;
json_object_object_get_ex(obj, "name", &name_obj);
const char *name = json_object_get_string(name_obj);
struct json_object *age_obj;
json_object_object_get_ex(obj, "age", &age_obj);
int age = json_object_get_int(age_obj);
printf("Name: %s, Age: %d\n", name, age);
}
json_object_put(json_obj); //釋放內存
return 0;
}

以上代碼中,首先使用json_tokener_parse函數將JSON字符串轉換為json_object結構體,然后使用json_object_get_type函數判斷該JSON對象是否是數組類型。接著,通過json_object_array_length函數獲取數組長度,使用json_object_array_get_idx函數遍歷數組。在遍歷中,通過json_object_object_get_ex函數獲取JSON對象中指定鍵名對應的數據,使用json_object_get_string或json_object_get_int函數將數據轉換為字符串或整型。最后,使用json_object_put函數釋放內存。

以上示例代碼可以解析JSON字符串數組,使用類似的方法也可以解析其他類型的JSON數據。