色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 解析json 轉數組

方一強1年前7瀏覽0評論

在C語言的開發過程中,經常需要解析JSON數據并將其轉化為數組,以便在程序中進行處理。以下是C語言中一些常用的JSON解析庫,以及如何使用它們來實現JSON數據轉化為數組的方法。

1. cJSON庫

#include "cJSON.h"
cJSON *json = cJSON_Parse("your json text");
if (!json) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
}
else {
int len = cJSON_GetArraySize(json);
for (int i = 0; i< len; i++) {
cJSON *array = cJSON_GetArrayItem(json, i);
int val = cJSON_GetNumberValue(array);
printf("%d\n", val);
}
cJSON_Delete(json);
}

2. Jansson庫

#includejson_t *json = json_loads("your json text", 0, NULL);
if (!json) {
printf("Error: json_loads failed.\n");
}
else {
int len = json_array_size(json);
for (int i = 0; i< len; i++) {
json_t *array = json_array_get(json, i);
int val = json_integer_value(array);
printf("%d\n", val);
}
json_decref(json);
}

3. yajl庫

#include#includevoid handle_int(void *ctx, long long val) {
printf("%lld\n", val);
}
void handle_array_start(void *ctx) {}
void handle_array_end(void *ctx) {}
yajl_callbacks callbacks = {
NULL, NULL, handle_int, NULL,
handle_array_start, handle_array_end
};
yajl_handle handle = yajl_alloc(&callbacks, NULL, NULL);
yajl_status status = yajl_parse(handle, "your json text", strlen("your json text"));
yajl_free(handle);

總結

以上三個庫都是C語言中常用的JSON解析庫,使用起來都比較簡單。不同的庫有不同的API,但是實現的功能都是相同的,就是將JSON數據轉化為數組。其中,cJSON庫和Jansson庫都提供了較好的文檔和教程,yajl庫則沒有提供官方的中文文檔。在實際使用時,可以根據具體情況選用不同的JSON解析庫。