C語言中的JSON語法格式化輸出,可以使用引號轉(zhuǎn)義字符。
#include <stdio.h> #include <cjson/cJSON.h> int main() { cJSON *json = cJSON_CreateObject(); //創(chuàng)建一個JSON對象 cJSON_AddStringToObject(json, "name", "Tom"); cJSON_AddNumberToObject(json, "age", 22); cJSON_AddStringToObject(json, "gender", "male"); char *jsonStr = cJSON_Print(json); //將JSON對象轉(zhuǎn)化為字符串 printf("轉(zhuǎn)化后的JSON字符串為:\n%s\n", jsonStr); cJSON_Delete(json); //釋放JSON對象內(nèi)存 return 0; }
在上述代碼中,可以看到cJSON庫中的cJSON_Print()函數(shù)可以將JSON對象轉(zhuǎn)化為字符串。在輸出字符串時,JSON的某些特殊符號需要進行轉(zhuǎn)義,其中就包括雙引號。
例如,如果想要在JSON字符串中添加一個鍵值對 "name":"Tom",需要使用引號將鍵和值包起來,但由于這個字符串已經(jīng)在雙引號內(nèi),所以需要對其中的雙引號進行轉(zhuǎn)義。代碼中的cJSON_AddStringToObject()函數(shù)就已經(jīng)幫我們完成這個操作了。
引號轉(zhuǎn)義字符為\,所以在cJSON_AddStringToObject()函數(shù)的第二個參數(shù)中,輸入的字符串為"\"Tom\"",其中的雙引號使用轉(zhuǎn)義字符進行轉(zhuǎn)義。最終生成的字符串為:
{ "name":"Tom", "age":22, "gender":"male" }
在使用cJSON庫時,需要注意JSON字符串中特殊字符的轉(zhuǎn)義,避免出現(xiàn)語法錯誤。