j2ee的web项目中什么是转义?你真的了解转义吗?

来源:互联网 发布:node sass 环境变量 编辑:程序博客网 时间:2024/05/16 12:31


一、例子1:

我想把“A”原样(是“A”而不是A)放入一个字符串。

String a=" "A" ";

这样会出问题,要么java编译器报错,要么变量a中不是我想要的“A”。

这时候,就要使用转义。

String a=“\“A\””;

但是有人一直都理解错了,以为\的意思就是将其后的字符原样输出,其实错了,错在如下:

①\单独出现,没有任何意义。\"表示双引号,恰巧就是代表”,而不是将其后的“原样输出。

②java的转义字符,只有  \b \t \n \f \r \" \' \\ 8种。即\后也不能随便写东西,写了编译器会报错的。




二、例子2

在html中,如果使用大于号>,或者<,是不会按照自己的预想那样,显示>或者<,因为html会把其认为是html标签。

而要用转义符:






三、json字符串的转义

有如下字符串:

String result=XX // 打断点查看test的值是{  "data":" {"name":"jams"}" }

这不是一个标准的json格式。

ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(result);

编译是不会报错的,但是运行readTree这一句时,会报错,因为result不是一个标准的json字符串。

而将result进行部分转义后:

String result=XX // 打断点查看test的值是{  "data":" {\"name\":\"jams\"}" }

这样运行readTree这一句时,就不会报错。因为readTree认为其是一个标准的json串。

所以,这里转义,是转义给readTree方法看的。即readTree方法中考虑了转义字符,并对转义字符进行特殊看待。





总结:

转义符的意思是,当给java什么却不显示什么(或者说想显示什么,却显示不出来)的情况下,就要考虑使用转义字符。



所以,转义,是转给谁看的?

答:谁负责解析,就转给谁看。如java编译器、html解析器(即浏览器都自带html解析器)、json数据处理中的ObjectMapper类的readTree方法









原创粉丝点击