本人博客地址: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
。