c json特殊字符轉(zhuǎn)義簡(jiǎn)介
在c json中,對(duì)于一些特殊字符需要進(jìn)行轉(zhuǎn)義,才能被正確的解析。下面是一些常見的需要轉(zhuǎn)義的特殊字符以及轉(zhuǎn)義方式: 字符 轉(zhuǎn)義方式 " \" \ \\ / \/ \b \\b \f \\f \n \\n \r \\r \t \\t
注意事項(xiàng)
1. 需要注意的是,在json字符串中,只有引號(hào)(")、反斜杠(\)、正斜杠(/)需要轉(zhuǎn)義。 2. 除了上述三個(gè)字符,其它特殊字符,例如退格、換行等,也需要轉(zhuǎn)義。 3. 轉(zhuǎn)義字符必須使用反斜杠(\)進(jìn)行轉(zhuǎn)義。 4. 在使用c json解析json字符串時(shí),如果json字符串中的特殊字符沒有進(jìn)行轉(zhuǎn)義,可能會(huì)導(dǎo)致解析出錯(cuò)。
代碼示例
char* json_str = "{\"name\":\"tom\",\"age\":20,\"address\":\"beijing road, shanghai\"}"; char* escape_str = "{\"name\":\"tom\",\"age\":20,\"address\":\"beijing\\n road, shanghai\"}"; cJSON* json = cJSON_Parse(json_str); // 正常解析 cJSON* escape_json = cJSON_Parse(escape_str); // 轉(zhuǎn)義字符解析 printf("name: %s, age: %d, address: %s\n", json->child->string, json->child->valueint, json->child->next->valuestring); printf("name: %s, age: %d, address: %s\n", escape_json->child->string, escape_json->child->valueint, escape_json->child->next->valuestring); // 輸出結(jié)果: // name: tom, age: 20, address: beijing road, shanghai // name: tom, age: 20, address: beijing // road, shanghai