在使用c語言開發(fā)后臺時,我們通常需要將數(shù)據(jù)以json格式返回給前端。而拼接json字符串是一項常見的操作。下面介紹一些c語言中拼接json字符串的方法。
char* json_str = (char*)malloc(1024*sizeof(char)); //分配1KB的內(nèi)存空間 memset(json_str, 0, sizeof(json_str)); //將內(nèi)存清空 //拼接json字符串 sprintf(json_str, "{" "\"name\":\"%s\"," "\"age\":%d," "\"sex\":\"%s\"" "}", "Tom", 18, "male"); printf("json_str:%s\n", json_str); //輸出json字符串
上面的代碼使用sprintf函數(shù)將各個字段的值拼接起來。注意,在json字符串中,每個字段的值需要用雙引號括起來,而雙引號本身也需要用反斜杠進(jìn)行轉(zhuǎn)義。
char* json_str = (char*)malloc(1024*sizeof(char)); memset(json_str, 0, sizeof(json_str)); strcpy(json_str, "{"); //拼接姓名字段 strcat(json_str, "\"name\":\""); strcat(json_str, "Tom"); strcat(json_str, "\","); //拼接年齡字段 char age_str[3] = {0}; sprintf(age_str, "%d", 18); strcat(json_str, "\"age\":"); strcat(json_str, age_str); strcat(json_str, ","); //拼接性別字段 strcat(json_str, "\"sex\":\""); strcat(json_str, "male"); strcat(json_str, "\""); strcat(json_str, "}"); printf("json_str:%s\n", json_str); free(json_str); //釋放內(nèi)存空間
上面的代碼使用strcpy和strcat函數(shù)將各個字段的值逐一拼接。需要注意,拼接字符串時需要自行加上各個字段之間的逗號,而最后一個字段后不能加逗號。此外,為了防止出現(xiàn)內(nèi)存溢出的情況,我們需要在使用malloc分配內(nèi)存空間后及時釋放。