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

c json對(duì)象轉(zhuǎn)換成數(shù)組

在C語(yǔ)言中,JSON對(duì)象是一種非常常見(jiàn)的數(shù)據(jù)類型。在實(shí)際應(yīng)用中,經(jīng)常需要將JSON對(duì)象轉(zhuǎn)換成數(shù)組來(lái)方便處理數(shù)據(jù)。下面就來(lái)介紹一下如何實(shí)現(xiàn)C語(yǔ)言中JSON對(duì)象轉(zhuǎn)換成數(shù)組的方法。

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <jansson.h>int main() {
char *json_str = "{\"name\":\"張三\",\"age\":18,\"score\":[80,90,100]}";
json_error_t error;
json_t *root = json_loads(json_str, 0, &error);
if (!root) {
printf("json_loads error, line %d: %s\n", error.line, error.text);
return -1;
}
json_t *scores = json_object_get(root, "score");
if (!json_is_array(scores)) {
printf("score is not a json array\n");
return -1;
}
int size = json_array_size(scores);
int *arr = (int *)malloc(sizeof(int) * size);
if (!arr) {
printf("malloc error\n");
return -1;
}
int i;
for (i = 0; i< size; i++) {
json_t *score = json_array_get(scores, i);
arr[i] = json_integer_value(score);
}
for (i = 0; i< size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr);
json_decref(root);
return 0;
}

上面的代碼中,我們首先定義一個(gè)JSON字符串“json_str”,其中包含了一個(gè)名為“score”的數(shù)組,數(shù)組中含有三個(gè)元素。接著我們使用json_loads函數(shù)將這個(gè)字符串轉(zhuǎn)換成json_t類型的根節(jié)點(diǎn)——root。然后我們使用json_object_get函數(shù)從根節(jié)點(diǎn)中獲取名為“score”的JSON對(duì)象。如果這個(gè)JSON對(duì)象不是數(shù)組類型,我們就直接退出程序。接著,我們使用json_array_size函數(shù)獲取數(shù)組的大小,并動(dòng)態(tài)申請(qǐng)一塊相應(yīng)大小的內(nèi)存用來(lái)存儲(chǔ)數(shù)組。最后,我們使用json_array_get函數(shù)以及json_integer_value函數(shù)逐個(gè)遍歷數(shù)組中的元素,并將其轉(zhuǎn)成int型存入之前申請(qǐng)好的數(shù)組中。在程序的最后,我們依次輸出這個(gè)數(shù)組的所有元素,并釋放掉申請(qǐng)的內(nèi)存空間。