在 C 語言中,我們經(jīng)常需要將 JSON 數(shù)據(jù)進行處理和轉(zhuǎn)換。其中,將 JSON 數(shù)組轉(zhuǎn)換為 JSON 對象是一個常見的需求。下面我們來介紹一種使用 C 語言實現(xiàn)該功能的方法。
我們可以使用第三方 JSON 解析庫,在解析 JSON 數(shù)據(jù)的基礎(chǔ)上,對數(shù)組進行轉(zhuǎn)換。這里我們使用 Jansson 庫。
#include <jansson.h>
json_t *arr_to_obj(json_t *json_array) {
if (json_array == NULL || !json_array_is_array(json_array))
return NULL;
size_t index;
json_t *value;
const char *key;
json_t *json_object = json_object();
json_array_foreach(json_array, index, value) {
key = json_integer_to_string(index);
json_object_set(json_object, key, value);
}
return json_object;
}
在這個函數(shù)中,我們首先判斷傳入的參數(shù)是否為 JSON 數(shù)組。如果不是,返回 NULL,表示轉(zhuǎn)換失敗。接著,我們創(chuàng)建一個空的 JSON 對象,并使用 foreach 循環(huán)遍歷 JSON 數(shù)組中的每個元素。我們使用 json_integer_to_string 函數(shù)將索引轉(zhuǎn)換成 char* 類型的字符串,并將其作為鍵,將數(shù)組中的值作為值,添加到 JSON 對象中。
轉(zhuǎn)換完成后,我們就可以使用新的 JSON 對象,對其他操作進行更方便的處理。