在 C 語言中,如果我們想要把一個集合變成 JSON 格式,可以使用以下代碼:
#include#include #include typedef struct { char *key; char *value; } KeyValuePair; typedef struct { KeyValuePair *pairs; int size; } Dictionary; char *dictionary_to_json(Dictionary dict) { char *json = (char *)malloc(sizeof(char)); json[0] = '{'; json[1] = '\0'; for (int i = 0; i< dict.size; i++) { KeyValuePair pair = dict.pairs[i]; char *key_json = (char *)malloc(strlen(pair.key) + 10); char *value_json = (char *)malloc(strlen(pair.value) + 10); sprintf(key_json, "\"%s\": ", pair.key); sprintf(value_json, "\"%s\"", pair.value); json = (char *)realloc(json, strlen(json) + strlen(key_json) + strlen(value_json) + 10); strcat(json, key_json); strcat(json, value_json); if (i< dict.size - 1) { strcat(json, ", "); } free(key_json); free(value_json); } json = (char *)realloc(json, strlen(json) + 2); strcat(json, "}"); return json; } int main() { Dictionary dict = { .pairs = (KeyValuePair[]) { {"name", "Alex"}, {"age", "25"}, {"gender", "male"} }, .size = 3 }; char *json = dictionary_to_json(dict); printf("JSON: %s\n", json); free(json); return 0; }
上述代碼定義了兩個結構體,一個是鍵值對,另一個是字典。字典使用鍵值對來存儲數據。函數dictionary_to_json
將字典轉換成 JSON 格式的字符串。它遍歷字典中的所有鍵值對,然后將它們轉換成 JSON 格式的字符串。最后,函數將所有字符串連接起來,并返回 JSON 格式的字符串。在主函數中,我們創建一個字典,將其轉換成 JSON 格式的字符串,并將其打印出來。
使用上述代碼,我們可以將任何鍵值對的集合轉換成 JSON 格式的字符串。