本人博客地址:http://my.oschina.net/lijindou/bloghtml
轉載請標明原址:http://my.oschina.net/lijindou/blog/736526java
昨天解析後臺返回的數據的時候,我發現我用GSON 解析JSON 數據的時候,有一塊數據老是解析不完整,而後整了一下午沒整好,今天早上,來了整整,發現 個人 數據中有 /r/n, 而後我將其刪除了,發現解析正常了,啊哈,問題找到了,上網查了查緣由,以下:linux
在windows平臺下換行符是 /r/n ,而在linux,android平臺下換行符是 /n ,因此取得的JSON字符串必須進行過濾,將/r/n替換成/nandroid
因此,咱們拿到JSON數據後,先用下面的方法過濾下,而後在解析json
/** * 將JSON數據中的 /r/n 替換 爲 /n */ public String JsonFilter(String jsonstr) { jsonstr = jsonstr.replace("\\r\\n", "\\n"); // jsonstr=jsonstr.replace("\\r\\n\\r\\n", "\\n"); return jsonstr; }
這塊的原理很簡單,就是用到了String這個類的replace()這個方法windows
JDK文檔:api
public String replace(char oldChar, char newChar)
返回一個新的字符串,它是經過用 newChar
替換此字符串中出現的全部 oldChar
獲得的。ui
若是 oldChar
在此 String
對象表示的字符序列中沒有出現,則返回對此 String
對象的引用。不然,建立一個新的 String
對象,它所表示的字符序列除了全部的 oldChar
都被替換爲 newChar
以外,與此String
對象表示的字符序列相同。spa
示例:.net
"mesquite in your cellar".replace('e', 'o') returns "mosquito in your collar" "the war of baronets".replace('r', 'y') returns "the way of bayonets" "sparring with a purple porpoise".replace('p', 't') returns "starring with a turtle tortoise" "JonL".replace('q', 'x') returns "JonL" (no change)
參數:
oldChar
- 原字符。
newChar
- 新字符。
返回:
一個今後字符串派生的字符串,它將此字符串中的全部 oldChar
替代爲 newChar
。