C語(yǔ)言是一門(mén)運(yùn)用廣泛的編程語(yǔ)言,而JSON格式的數(shù)據(jù)交互也是非常流行的。在C語(yǔ)言中使用JSON傳遞字典數(shù)據(jù)也是比較常見(jiàn)的操作。下面介紹如何在C語(yǔ)言中使用JSON實(shí)現(xiàn)字典的傳遞。
// 引入JSON庫(kù) #include "cJSON.h" // 將字典數(shù)據(jù)轉(zhuǎn)化為JSON格式 cJSON *dictToJson(char **keys, char **values, int count) { cJSON *json = cJSON_CreateObject(); for (int i = 0; i< count; ++i) { cJSON *value = cJSON_CreateString(values[i]); cJSON_AddItemToObject(json, keys[i], value); } return json; } // 將JSON格式數(shù)據(jù)轉(zhuǎn)化為字典 void jsonToDict(cJSON *json, char **keys, char **values, int count) { for (int i = 0; i< count; ++i) { cJSON *item = cJSON_GetObjectItem(json, keys[i]); if (item) { strcpy(values[i], item->valuestring); } } } // 示例 void example() { // 創(chuàng)建字典數(shù)據(jù) char *keys[] = {"name", "age", "gender"}; char *values[] = {"Tom", "18", "male"}; int count = sizeof(keys) / sizeof(keys[0]); // 將字典數(shù)據(jù)轉(zhuǎn)化為JSON格式 cJSON *json = dictToJson(keys, values, count); // 將JSON格式數(shù)據(jù)轉(zhuǎn)化為字典 char *newValues[count]; for (int i = 0; i< count; ++i) { newValues[i] = (char *) malloc(sizeof(char) * 20); } jsonToDict(json, keys, newValues, count); // 輸出轉(zhuǎn)化后的字典數(shù)據(jù) for (int i = 0; i< count; ++i) { printf("%s: %s\n", keys[i], newValues[i]); } }
從上面的代碼可以看出,在C語(yǔ)言中使用JSON傳遞字典數(shù)據(jù)也是非常容易的。只需要將原始數(shù)據(jù)轉(zhuǎn)化為JSON格式,然后在接收端再將JSON格式數(shù)據(jù)轉(zhuǎn)化為字典即可。使用這種方式傳遞數(shù)據(jù),可以方便快捷地將數(shù)據(jù)傳遞給其他語(yǔ)言的應(yīng)用程序,實(shí)現(xiàn)跨平臺(tái)數(shù)據(jù)交互。