JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,它的語法類似于 JavaScript 對象字面量,非常便于人類閱讀和編寫,并容易被程序解析和生成。
C 語言中的 JSON 解析庫有很多,例如 cJSON、jansson 等。我們需要用到 cJSON 這個庫來將 JSON 字符串轉(zhuǎn)換為一行字符串。
cJSON *root = cJSON_Parse(json_data); // 解析 JSON 字符串 char *out = cJSON_Print(root); // 將 cJSON 對象轉(zhuǎn)換為一行字符串
cJSON_Parse() 函數(shù)用于將 JSON 字符串解析成 cJSON 對象。而 cJSON_Print() 函數(shù)則將 cJSON 對象轉(zhuǎn)換為一個字符串,并盡可能地將其壓縮成一行形式。
如果不使用 cJSON_Print() 函數(shù),直接將 cJSON 對象打印出來,看起來會非常雜亂,格式也不規(guī)整。
cJSON *root = cJSON_Parse(json_data); printf("%s\n", cJSON_Print(root)); // 輸出不規(guī)整的 cJSON 對象
使用 cJSON_Print() 函數(shù)將 cJSON 對象轉(zhuǎn)換為一行字符串后,看起來就比較整潔:
cJSON *root = cJSON_Parse(json_data); char *out = cJSON_Print(root); printf("%s\n", out); // 輸出整潔的一行字符串
在實際開發(fā)中,將 JSON 字符串轉(zhuǎn)換為一行字符串可以減小傳輸數(shù)據(jù)的大小,在網(wǎng)絡(luò)傳輸、數(shù)據(jù)存儲等場景中都有很大的用處。
上一篇c 封裝嵌套json