欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 泛型T轉json

錢瀠龍1年前8瀏覽0評論

在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字符串。