[问题] 请问gson处理json有哪些特殊字元会escape?

楼主: flowwinds (..)   2017-05-08 19:40:40
大家好,
而且我太明白 http://json.org/ 里面的这个图 http://json.org/string.gif
像里面包含了 / escape后应该是 \/
不过gson处理后似乎没变这样
JsonObject json = new JsonObject();
json.addProperty("test", "/");
System.out.println(json.toString());
印出的结果是 {"test":"/"}
这是表示gson在处理一些字符的escape跟规格的不同吗?
那请问有人知道它是怎么处理的特殊字符跳脱呢?
还有图最底下有 u 4 hexdecimal digits这是什么意思? 不太懂
谢谢~
作者: ssccg (23)   2017-05-08 19:52:00
又没有一定要escape...从中间那条规则不就很清楚了只有"和\才一定要escape(非控制字符的部分)\u就unicode escape,16进位表示一个16-bit的code point
作者: pttworld (批踢踢世界)   2017-05-08 20:04:00
u的后面必须是4个16进位数值,你在编辑器上没看过吗
楼主: flowwinds (..)   2017-05-08 20:17:00
原来没有一定要escape, 可以走中间或下面的, 谢谢说明那再请问有人知道gson里是怎么做escape的吗?An unicode character except " or \ or control character, 中间那条规则是这样写, 碰到"应该就算结束, 碰到\ 应该就是要escape了吧, 难道escape不是都照下面规则?不好意思这边我不太明白..谢谢s大及p大的说明,我想我明白了,谢谢~
作者: ssccg (23)   2017-05-08 20:40:00
从左边进去,下一个token符合任何一条能走的路就ok,上面第二条是绕回来(除了前后的""以外,其他token都用同一个规则)这不是编码规则,是在描述合法字串长怎样的文法规则

Links booklink

Contact Us: admin [ a t ] ucptt.com