在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#include void 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解析庫。
上一篇c 解析json 帶數組
下一篇vue 3 官網