JSON是一種輕量級的數據交換格式,它已經成為了現代Web應用程序中數據傳輸和存儲的首選格式。C語言作為一種近乎系統級別的編程語言,對于處理JSON數據也提供了很好的支持。本文將介紹如何直接使用C語言輸出JSON格式的數據庫。
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char* key; char* value; } kvpair_t; typedef struct { kvpair_t** pairs; size_t len; } json_t; json_t* json_new() { json_t* json = (json_t*)malloc(sizeof(json_t)); json->pairs = (kvpair_t**)malloc(sizeof(kvpair_t*)*8); json->len = 0; return json; } void json_add_pair(json_t* json, const char* key, const char* value) { kvpair_t* pair = (kvpair_t*)malloc(sizeof(kvpair_t)); pair->key = strdup(key); pair->value = strdup(value); json->pairs[json->len++] = pair; } void json_print(json_t* json) { printf("{"); for (int i = 0; i<json->len; i++) { kvpair_t* pair = json->pairs[i]; printf("\"%s\":\"%s\"", pair->key, pair->value); if (i != json->len-1) { printf(", "); } } printf("}"); } int main(int argc, char** argv) { json_t* json = json_new(); // Add some key/value pairs json_add_pair(json, "name", "john doe"); json_add_pair(json, "age", "30"); json_add_pair(json, "married", "true"); // Print the JSON string json_print(json); // Free the memory for (int i = 0; i<json->len; i++) { kvpair_t* pair = json->pairs[i]; free(pair->key); free(pair->value); free(pair); } free(json->pairs); free(json); return 0; }
上述代碼中,我們定義了一個kvpair_t結構體用于存儲鍵/值對,定義了一個json_t結構體用于存儲多個kvpair_t結構體,從而構成了一個完整的JSON格式數據。我們通過json_new函數來初始化json_t結構體,通過json_add_pair函數來將kvpair_t結構體加入到json_t結構體中,最后通過json_print函數來輸出JSON數據。
使用C語言輸出JSON格式的數據庫雖然相比其他語言稍顯繁瑣,但C語言作為一種系統級別的編程語言,在性能和靈活性上具有很大的優勢。因此,在一些對性能要求很高的場景下,使用C語言來輸出JSON格式的數據庫是一個很不錯的選擇。
下一篇vue上傳報302