C 字符串轉 JSON 是一個經常用到的需求。但是在實際使用中,我們經常遇到將 JSON 轉換成 C 字符串時,反斜杠被包裹在我們的轉換結果中,如下所示:
{\"name\":\"John\",\"age\":30}
這是因為在 JSON 字符串中,特殊字符必須使用反斜杠進行轉義。但是在 C 字符串中,反斜杠本身也需要使用反斜杠進行轉義。因此,我們需要進行反斜杠的轉義。
下面是一個 C 函數可以將 JSON 轉換為沒有反斜杠的的字符串:
void escape_json_string(char *dst, const char *src) { char *p = dst; while (*src) { switch (*src) { case '"': case '\\': *p++ = '\\'; default: *p++ = *src; break; } src++; } *p = '\0'; }
在上面的代碼中,我們首先拿到了輸入的 JSON 字符串,并通過一個 while 循環遍歷每個字符。如果我們遇到一個引號或反斜杠,則我們在其前面添加另一個反斜杠。否則,我們就直接拷貝該字符。
使用上述代碼,我們可以將需要轉換的 JSON 字符串轉換為沒有反斜杠的形式。
下一篇vue減像素嗎