在C語言中使用哈希表是一種常見的數據結構,但是有時候我們需要將哈希表的數據轉化為JSON格式,以便在其他應用中使用。這篇文章將介紹如何將哈希表寫成JSON格式。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> #include <uthash.h> /* 哈希表結構體 */ typedef struct { char key[20]; int value; UT_hash_handle hh; } hash_item; /* 創建哈希表 */ void create_hash(hash_item **hash, char key[], int value) { hash_item *item = (hash_item*) malloc(sizeof(hash_item)); strcpy(item->key, key); item->value = value; HASH_ADD_STR(*hash, key, item); } /* 將哈希表轉化為JSON格式 */ json_t* hash_to_json(hash_item *hash) { json_t *json = json_object(); hash_item *item; /* 遍歷哈希表 */ for(item = hash; item != NULL; item = (hash_item*)(item->hh.next)) { json_object_set_new(json, item->key, json_integer(item->value)); } return json; } int main() { hash_item *hash = NULL; /* 往哈希表中添加元素 */ create_hash(&hash, "apple", 4); create_hash(&hash, "banana", 6); /* 將哈希表轉化為JSON格式 */ json_t *json = hash_to_json(hash); /* 將JSON格式的數據寫入文件 */ FILE *fp = fopen("hash.json", "w"); fputs(json_dumps(json, 0), fp); fclose(fp); return 0; }
以上是使用C語言將哈希表寫成JSON格式的代碼,我們可以通過調用create_hash函數向哈希表中添加元素,再調用hash_to_json函數將哈希表轉化為JSON格式。最后我們將JSON格式的數據寫入文件。在這里我們使用了jansson庫來處理JSON,同時也使用了uthash庫來處理哈希表。這一操作可以讓我們更加方便地使用哈希表和JSON格式,提高開發效率。
下一篇549vue下載