在C語(yǔ)言開(kāi)發(fā)中,我們常需要將C list轉(zhuǎn)化為JSON字符串?dāng)?shù)組,以方便傳輸和存儲(chǔ)數(shù)據(jù)。下面是一個(gè)簡(jiǎn)單的例子,演示了如何實(shí)現(xiàn)這一過(guò)程。
#include <stdio.h> #include <cJSON.h> // 定義一個(gè)結(jié)構(gòu)體 typedef struct { char key[10]; int value; } Pair; int main() { // 初始化一個(gè)C list,包含兩對(duì)key-value Pair list[2] = { { "key1", 123 }, { "key2", 456 } }; // 創(chuàng)建一個(gè)cJSON數(shù)組,用于存儲(chǔ)轉(zhuǎn)化后的結(jié)果 cJSON* jsonArray = cJSON_CreateArray(); // 遍歷list,將每個(gè)元素轉(zhuǎn)化為一個(gè)cJSON object,并添加到j(luò)sonArray中 int i; for (i = 0; i < 2; i++) { cJSON* jsonObject = cJSON_CreateObject(); cJSON_AddStringToObject(jsonObject, "key", list[i].key); cJSON_AddNumberToObject(jsonObject, "value", list[i].value); cJSON_AddItemToArray(jsonArray, jsonObject); } // 將jsonArray轉(zhuǎn)化為JSON字符串,并輸出 char* jsonStr = cJSON_Print(jsonArray); printf("轉(zhuǎn)化后的JSON字符串為:%s\n", jsonStr); return 0; }
上述代碼中,我們使用了第三方庫(kù)cJSON來(lái)實(shí)現(xiàn)JSON的解析和生成。首先定義了一個(gè)結(jié)構(gòu)體Pair,用于存儲(chǔ)key-value對(duì);然后初始化了一個(gè)包含兩個(gè)Pair的list;接著創(chuàng)建了一個(gè)cJSON數(shù)組jsonArray,用于存儲(chǔ)轉(zhuǎn)化后的JSON結(jié)果;最后遍歷list,將每個(gè)Pair轉(zhuǎn)化為一個(gè)cJSON object,并添加到j(luò)sonArray中。最終,將jsonArray轉(zhuǎn)化為JSON字符串,并輸出。
通過(guò)這樣的方式,我們可以方便、快速地將C list轉(zhuǎn)化為JSON字符串?dāng)?shù)組,以滿(mǎn)足數(shù)據(jù)傳輸和存儲(chǔ)的需求。