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

c 取json內的數組值

錢淋西2年前8瀏覽0評論

C語言在處理JSON數據時,經常需要取JSON內的數組值。下面是一個簡單的示例,演示了如何使用C語言取得JSON內的數組值。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main(int argc, char **argv)
{
char *json_str = "[1,2,3]";
json_t *root;
json_error_t error;
root = json_loads(json_str, 0, &error);
if(!root) {
fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
return 1;
}
if(!json_is_array(root)) {
fprintf(stderr, "error: root is not an array\n");
json_decref(root);
return 1;
}
size_t index;
json_t *value;
json_array_foreach(root, index, value) {
if(!json_is_integer(value)) {
fprintf(stderr, "error: value is not an integer\n");
json_decref(root);
return 1;
}
int num = json_integer_value(value);
printf("value %zu: %d\n", index, num);
}
json_decref(root);
return 0;
}

上面的代碼演示了如何使用json_loads()函數從JSON字符串中加載JSON對象,然后判斷是否為JSON數組,遍歷數組元素,并分別將每一個元素轉換為整數類型進行輸出。

這里提到,json_loads()函數的第二個參數為flags,一般設置為0即可,最后一個json_error_t參數用于存儲錯誤信息。

而最核心的是使用json_array_foreach()函數遍歷了JSON數組。該函數需要傳入兩個參數:JSON數組對象和回調函數。其中回調函數中有三個參數:元素下標、元素值以及回調函數上下文(此處為NULL)。對于每一個元素,回調函數都會被調用一次進行處理。

最后,需要注意的是,不同的JSON使用庫,其API可能略有不同。但總的來說,取JSON內的數組值的方法大同小異。