搜尋

首頁  >  問答  >  主體

android - Gson 解析含有「\r」的字元怎麼保證"\r"不被清除?

1

2

<code>    String json = "{\"remark1\":\"这里是一个反斜杠 + r \r \r \r ------------- \",\"remark2\":\"这里是二个反斜杠 + r \\r \\r \\r ------------- \",\"remark3\":\"这里是三个反斜杠 + r \\\r \\\r \\\r ------------- \"}";

</code>

我有一個Json字串要在TextView裡做顯示換行,但實際操作的時候用Gson轉換成Bean物件以後,"\r"總是會被Gson直接移除。

我試過disableHtmlEscaping()也沒用!!!

#

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<code>PLog.json(json);

 

Gson gson = new GsonBuilder().disableHtmlEscaping().create();

Gson gson2 = new Gson();

 

ReMark shareLinkResponse = gson.fromJson(json, ReMark.class);

ReMark shareLinkResponse2 = gson2.fromJson(json, ReMark.class);

PLog.d(shareLinkResponse.getRemark1());

PLog.d(shareLinkResponse.getRemark2());

PLog.d(shareLinkResponse.getRemark3());

PLog.d("----------------------------------------");

PLog.d(shareLinkResponse2.getRemark1());

PLog.d(shareLinkResponse2.getRemark2());

PLog.d(shareLinkResponse2.getRemark3());</code>

在我的LogCat中顯示

1

2

3

4

5

6

7

8

9

10

11

12

13

<code> {

     "remark1": "这里是一个反斜杠 + r \r \r \r ------------- ",

     "remark2": "这里是二个反斜杠 + r \r \r \r ------------- ",

     "remark3": "这里是三个反斜杠 + r \\r \\r \\r ------------- "

 }

 

D/PLog: [ (MainActivity.java:49)#onCreate ] 这里是一个反斜杠 + r    -------------

D/PLog: [ (MainActivity.java:50)#onCreate ] 这里是二个反斜杠 + r \r \r \r ------------

D/PLog: [ (MainActivity.java:51)#onCreate ] 这里是三个反斜杠 + r \ \ \ -------------

D/PLog: [ (MainActivity.java:52)#onCreate ] ----------------------------------

D/PLog: [ (MainActivity.java:53)#onCreate ] 这里是一个反斜杠 + r    -------------

D/PLog: [ (MainActivity.java:54)#onCreate ] 这里是二个反斜杠 + r \r \r \r ------------

D/PLog: [ (MainActivity.java:55)#onCreate ] 这里是三个反斜杠 + r \ \ \ ------------- </code>

如果Gson無法正確解析我就只能手動來了,很尷尬

求助

女神的闺蜜爱上我女神的闺蜜爱上我2788 天前1513

全部回覆(1)我來回復

  • 黄舟

    黄舟2017-07-04 13:47:28

    其實

    1

    <code>这里是一个反斜杠 + r    -------------</code>

    在這裡r 是存在的,而Android Studiologcat 沒有將他顯示出來,win下換行也不是r,所以沒有馬上發現,如果拿著這個字符串去("r") 這時候回傳的是true 證明了字串裡面有r ,呵呵

    回覆
    0
  • 取消回覆