[問題] 請問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