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

c json對象取數組的值

錢艷冰1年前8瀏覽0評論

在使用C語言處理JSON對象時,我們常常需要從數組中取值。下面是一個示例的JSON對象:

{
"name": "張三",
"age": 20,
"hobbies": [
"籃球",
"游泳",
"唱歌"
]
}

如果我們想要從hobbies數組中取出第二個元素“游泳”,可以使用以下代碼:

#include <stdio.h>
#include <stdlib.h>
#include <jansson.h>
int main() {
const char *json_str = "{\"name\":\"張三\",\"age\":20,\"hobbies\":[\"籃球\",\"游泳\",\"唱歌\"]}";
json_t *root;
json_error_t error;
root = json_loads(json_str, 0, &error);
if (!root) {
fprintf(stderr, "json error on line %d: %s\n", error.line, error.text);
return 1;
}
json_t *hobbies = json_object_get(root, "hobbies");
if (json_array_size(hobbies) >1) {
json_t *hobby = json_array_get(hobbies, 1);
const char *hobby_str = json_string_value(hobby);
printf("%s\n", hobby_str);
}
json_decref(root);
return 0;
}

代碼解析:

1. 定義一個JSON字符串,并使用json_loads()函數將其轉換成JSON對象。

const char *json_str = "{\"name\":\"張三\",\"age\":20,\"hobbies\":[\"籃球\",\"游泳\",\"唱歌\"]}";
json_t *root;
json_error_t error;
root = json_loads(json_str, 0, &error);

2. 使用json_object_get()函數獲取hobbies數組。

json_t *hobbies = json_object_get(root, "hobbies");

3. 使用json_array_size()函數獲取hobbies數組的大小,如果大于1,則使用json_array_get()函數獲取第二個元素。

if (json_array_size(hobbies) >1) {
json_t *hobby = json_array_get(hobbies, 1);
const char *hobby_str = json_string_value(hobby);
printf("%s\n", hobby_str);
}

4. 最后使用json_decref()函數釋放JSON對象。

json_decref(root);

使用以上代碼即可從數組中取出相應的值。