C語(yǔ)言生成JSON格式字符串的方法
#include#include #include // 定義JSON格式字符串 typedef struct JSON { char* str; int size; } JSON; // 添加字符串 void addString(JSON* json, char* s) { // 計(jì)算新字符串的長(zhǎng)度 int len = strlen(s); int size = json->size + len + 2; // 重新分配內(nèi)存 json->str = (char*)realloc(json->str, size); // 拼接字符串 if (json->size == 0) { sprintf(json->str, "\"%s\"", s); } else { sprintf(json->str + json->size - 1, ",\"%s\"", s); } // 更新JSON字符串的長(zhǎng)度 json->size = size; } // 添加數(shù)字 void addNumber(JSON* json, int n) { // 計(jì)算新字符串的長(zhǎng)度 int size = json->size + 16; // 重新分配內(nèi)存 json->str = (char*)realloc(json->str, size); // 拼接字符串 if (json->size == 0) { sprintf(json->str, "%d", n); } else { sprintf(json->str + json->size - 1, ",%d", n); } // 更新JSON字符串的長(zhǎng)度 json->size = size; } // 釋放內(nèi)存 void freeJSON(JSON* json) { free(json->str); json->size = 0; json->str = NULL; } int main() { // 創(chuàng)建JSON字符串 JSON json = { NULL, 0 }; // 添加字符串 addString(&json, "name"); addString(&json, "age"); // 添加數(shù)字 addNumber(&json, 28); addNumber(&json, 100); // 輸出JSON字符串 printf("%s\n", json.str); // 釋放內(nèi)存 freeJSON(&json); return 0; }
以上代碼使用C語(yǔ)言實(shí)現(xiàn)了生成JSON格式字符串的功能,通過(guò)定義JSON結(jié)構(gòu)體,在添加字符串和數(shù)字的過(guò)程中更新JSON字符串的長(zhǎng)度,并最終釋放內(nèi)存。使用該方法可以方便地生成JSON格式的字符串。