在C語言中,泛型轉json是一個非常有用的功能。泛型T代表了任意數據類型,能夠將不同類型的數據轉換為json格式的字符串。
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> //將任意類型的數據轉換為json字符串 char* T_to_json(void* data, int type) { char* json_str = NULL; cJSON* json = NULL; switch (type) { case 1: //int類型 json = cJSON_CreateNumber(*(int*)data); break; case 2: //float類型 json = cJSON_CreateNumber(*(float*)data); break; case 3: //char類型 json = cJSON_CreateString((char*)data); break; default: break; } if (json != NULL) { json_str = cJSON_Print(json); cJSON_Delete(json); } return json_str; } int main() { int num = 10; float f_num = 3.14; char* str = "hello world"; char* num_json = T_to_json(&num, 1); char* f_num_json = T_to_json(&f_num, 2); char* str_json = T_to_json(str, 3); printf("int: %s\n", num_json); printf("float: %s\n", f_num_json); printf("string: %s\n", str_json); free(num_json); free(f_num_json); free(str_json); return 0; }
上面的代碼使用了cJSON庫將泛型T轉換為json字符串。我們定義了T_to_json函數,根據數據類型的不同使用不同的cJSON函數創建json格式的數據。
通過運行上面的代碼,我們可以得到以下輸出結果:
int: 10 float: 3.140000 string: "hello world"
可以看到,不同類型的數據都被成功轉換為了對應的json字符串。
上一篇python 微信付款