搜尋

首頁  >  問答  >  主體

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

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

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

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

#
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());

在我的LogCat中顯示

 {
     "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 \ \ \ ------------- 

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

求助

女神的闺蜜爱上我女神的闺蜜爱上我2725 天前1459

全部回覆(1)我來回復

  • 黄舟

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

    其實

    这里是一个反斜杠 + r    -------------

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

    回覆
    0
  • 取消回覆