C語言中的Json編碼格式是使用雙引號("")表示的字符串,但是在C語言中雙引號也是用于表示字符串的符號,因此在Json字符串中使用雙引號需要對其進行轉(zhuǎn)義,即使用反斜杠(\\)將雙引號轉(zhuǎn)義。例如:
char* json_str = "{\\"name\\":\\"John\\", \\"age\\":18}";
在上述代碼中,反斜杠起到了轉(zhuǎn)義雙引號的作用,使得Json字符串能夠正常被解析。但是當Json字符串比較復(fù)雜時,手動進行轉(zhuǎn)義會非常繁瑣,因此可以使用一些輔助庫來進行Json的解析和編碼。常用的Json庫有cjson、json-c等。
例如,使用cjson庫來進行Json字符串的編碼和解析:
#include <stdio.h> #include <cjson/cJSON.h> int main() { char* name = "John"; int age = 18; cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", name); cJSON_AddNumberToObject(root, "age", age); char* json_str = cJSON_Print(root); printf("%s\n", json_str); cJSON_Delete(root); free(json_str); return 0; }
在上述代碼中,使用cJSON_CreateObject()函數(shù)創(chuàng)建一個Json對象,然后使用cJSON_AddStringToObject()和cJSON_AddNumberToObject()函數(shù)向Json對象中添加屬性,最后使用cJSON_Print()將Json對象轉(zhuǎn)化成Json字符串。cJSON庫會自動進行雙引號的轉(zhuǎn)義處理,使得輸出的Json字符串能夠正常被解析。