2019独角兽企业重金招聘Python工程师标准>>>
本人博客地址:http://my.oschina.net/lijindou/blog
转载请标明原址:http://my.oschina.net/lijindou/blog/736526
昨天解析后台返回的数据的时候,我发现我用GSON 解析JSON 数据的时候,有一块数据总是解析不完整,然后整了一下午没整好,今天早上,来了整整,发现 我的 数据中有 /r/n, 然后我将其删除了,发现解析正常了,啊哈,问题找到了,上网查了查原因,如下:
在windows平台下换行符是 /r/n ,而在linux,android平台下换行符是 /n ,所以取得的JSON字符串必须进行过滤,将/r/n替换成/n
所以,我们拿到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()这个方法
JDK文档:
replace
public String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar
替换此字符串中出现的所有 oldChar
得到的。
如果 oldChar
在此 String
对象表示的字符序列中没有出现,则返回对此 String
对象的引用。否则,创建一个新的 String
对象,它所表示的字符序列除了所有的 oldChar
都被替换为 newChar
之外,与此String
对象表示的字符序列相同。
示例:
"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
。