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

c 怎么將json改為數(shù)組

方一強2年前9瀏覽0評論

C語言是一種廣泛應(yīng)用于系統(tǒng)級編程的高級編程語言,當(dāng)我們需要處理JSON數(shù)據(jù)時,很多時候需要將其轉(zhuǎn)換為數(shù)組以便進行進一步的處理。下面介紹一下如何在C語言中將JSON字符串轉(zhuǎn)換為數(shù)組。

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

以上代碼使用了jansson庫,該庫是一個輕量級的C語言JSON庫,可以用來解析、構(gòu)建和操作JSON數(shù)據(jù)。代碼中首先創(chuàng)建了一個JSON字符串,然后使用json_loads函數(shù)將其轉(zhuǎn)換為json_t對象。接著通過json_object_get函數(shù)獲取到要轉(zhuǎn)換為數(shù)組的json_t對象,然后通過json_array_size獲取該數(shù)組的大小,并根據(jù)其大小動態(tài)分配內(nèi)存,將值保存到數(shù)組中,最后通過循環(huán)輸出數(shù)組中的所有值。