[問題] 請問gson處理json有哪些特殊字元會escape?

看板java作者 (..)時間8年前 (2017/05/08 19:40), 8年前編輯推噓0(0015)
留言15則, 3人參與, 最新討論串1/1
大家好, 而且我太明白 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這是什麼意思? 不太懂 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.159.185.222 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1494243645.A.F00.html ※ 編輯: flowwinds (49.159.185.222), 05/08/2017 19:43:04 ※ 編輯: flowwinds (49.159.185.222), 05/08/2017 19:45:22

05/08 19:52, , 1F
又沒有一定要escape...
05/08 19:52, 1F

05/08 19:53, , 2F
從中間那條規則不就很清楚了只有"和\才一定要escape
05/08 19:53, 2F

05/08 19:53, , 3F
(非控制字元的部分)
05/08 19:53, 3F

05/08 20:04, , 4F
\u就unicode escape,16進位表示一個16-bit的code point
05/08 20:04, 4F

05/08 20:04, , 5F
u的後面必須是4個16進位數值,你在編輯器上沒看過嗎
05/08 20:04, 5F

05/08 20:17, , 6F
原來沒有一定要escape, 可以走中間或下面的, 謝謝說明
05/08 20:17, 6F

05/08 20:18, , 7F
那再請問有人知道gson裡是怎麼做escape的嗎?
05/08 20:18, 7F

05/08 20:21, , 8F
An unicode character except " or \ or control chara
05/08 20:21, 8F

05/08 20:22, , 9F
cter, 中間那條規則是這樣寫, 碰到"應該就算結束, 碰到
05/08 20:22, 9F

05/08 20:22, , 10F
\ 應該就是要escape了吧, 難道escape不是都照下面規則?
05/08 20:22, 10F

05/08 20:23, , 11F
不好意思這邊我不太明白..
05/08 20:23, 11F

05/08 20:30, , 12F
謝謝s大及p大的說明,我想我明白了,謝謝~
05/08 20:30, 12F

05/08 20:40, , 13F
從左邊進去,下一個token符合任何一條能走的路就ok,上面第
05/08 20:40, 13F

05/08 20:40, , 14F
二條是繞回來(除了前後的""以外,其他token都用同一個規則)
05/08 20:40, 14F

05/08 20:42, , 15F
這不是編碼規則,是在描述合法字串長怎樣的文法規則
05/08 20:42, 15F
文章代碼(AID): #1P45azy0 (java)
文章代碼(AID): #1P45azy0 (java)