JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,常用于Web應用程序的數據傳輸。JSON中使用轉義字符(escape characters)來表示特殊字符,如雙引號、反斜杠等。在某些情況下,我們需要去掉JSON中的轉義字符。在C語言中,我們可以使用轉義符\來表示特殊字符,接下來我們將使用C語言來演示如何去掉JSON中的轉義字符。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char* jsonString = "{\"name\":\"Tom\", \"age\":20, \"desc\":\"Hello\\\"world\\\"!\"}"; // 一個帶轉義字符的JSON字符串 char* resultString = (char*)malloc(sizeof(char) * (strlen(jsonString) + 1)); // 分配內存存儲結果字符串 char* p = resultString; int len = strlen(jsonString); for (int i = 0; i< len; i++) { // 遍歷原始字符串 if(jsonString[i] == '\\'){ // 如果遇到轉義字符 switch(jsonString[i+1]){ // 判斷轉義字符后面的字符 case '\"': *p = '\"'; break; case '\\': *p = '\\'; break; case '/': *p = '/'; break; case 'b': *p = '\b'; break; case 'f': *p = '\f'; break; case 'n': *p = '\n'; break; case 'r': *p = '\r'; break; case 't': *p = '\t'; break; } i++; // 跳過轉義字符后面的字符 } else { *p = jsonString[i]; // 如果不是轉義字符,則直接拷貝到結果字符串中 } p++; } *p = '\0'; // 結果字符串以'\0'結尾 printf("%s\n", resultString); // 輸出結果字符串 free(resultString); // 釋放內存 return 0; }
以上代碼將去掉JSON中的轉義字符,輸出結果如下:
{"name":"Tom", "age":20, "desc":"Hello"world"!"}
通過以上代碼,我們可以實現C語言中去掉JSON中的轉義字符,為日常開發提供了可靠的幫助。