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

c 字典轉為json字符串

榮姿康2年前9瀏覽0評論

C語言中有一個非常實用的數據結構——字典(Dictionary),它可以存儲key-value鍵值對。而在現代計算機技術中,JSON(JavaScript Object Notation)已經成為了一個非常流行的數據格式,因為它輕量、易于閱讀和寫入,并且易于與其他編程語言進行交互。因此,在C語言中將字典轉換為JSON字符串,是一個非常實用的操作。

// 定義一個字典結構體
typedef struct {
char *key;      // 鍵
char *value;    // 值
} dict_t;
// 定義一個字典轉換為JSON字符串的函數
char *dict_to_json(dict_t *dict, int count) {
char *str = malloc(sizeof(char) * 1024);     // 分配足夠大的內存空間
char *tmp = NULL;
strcat(str, "{");
for (int i = 0; i< count; i++) {
strcat(str, "\"");
strcat(str, dict[i].key);
strcat(str, "\":\"");
strcat(str, dict[i].value);
strcat(str, "\",");
}
tmp = strrchr(str, ',');    // 找到最后一個逗號
if (tmp != NULL) {
*tmp = '}';             // 將最后一個逗號替換為右括號
*(tmp+1) = '\0';        // 表示字符串結束
}
return str;
}

在這個函數中,我們首先為JSON字符串分配了足夠大的內存空間,然后遍歷字典中的每個鍵值對,依次將其添加到JSON字符串中。為了確保JSON字符串的格式正確,我們在每個鍵和值的前后加上了雙引號,并在每個鍵值對之間添加了逗號。最后,在字符串的末尾,我們將最后一個逗號替換為右括號,以表示JSON字符串結束。

使用這個函數,我們可以將一個字典對象轉換為JSON字符串。例如,如果我們有以下字典:

dict_t dict[] = {
{"name", "Tom"},
{"age", "25"},
{"gender", "male"}
};
int count = sizeof(dict) / sizeof(dict_t);
char *json_str = dict_to_json(dict, count);

那么,調用dict_to_json函數后,得到的json_str字符串將是這樣的:

{
"name":"Tom",
"age":"25",
"gender":"male"
}

這個JSON字符串的格式是正確的,可以被其他編程語言解析并轉換為相應的數據結構。這樣,我們就實現了C字典轉換為JSON字符串的功能。