日期:2014-05-17  浏览次数:21185 次

如何过滤掉json字符串里面的反斜杠?
本帖最后由 iqv520 于 2013-08-13 16:38:52 编辑
最近看oauth2.0 QQ登录方面的东西,根据https://graph.qq.com/user/get_user_info?access_token=YOUR_ACCESS_TOKEN&oauth_consumer_key=YOUR_APP_ID&openid=YOUR_OPENID 换成自己的东西去访问时,后台看到返回的json字符串是下面的形式:"{\n    \"ret\": 0,\n    \"msg\": \"\",\n    \"nickname\": \"hello\",\n    \"gender\": \"男\",\n    \"figureurl\": \"http:\\/\\/qzapp.qlogo.cn\\/qzapp\\/100498747\\/F99597DE0A73FE5A4854DBBBE7BAD64E\\/30\"}"
请问如何将这个字符串转换成json对象呢?为什么http路径那里有两个反斜杠?

------解决方案--------------------
Replace("\\","\")
------解决方案--------------------
原来你说的是http后面的反斜杠,那个的确是数据本身的错误,但是我有点不敢相信,QQ居然会犯这种低级错误,看来树大有蛀虫啊,写这接口的人水平不行,自己进行Json字符串拼接的时候,多输出了一次反斜杠。
对于这种错误数据,既然你已经知道问题了,那么处理也不难,只要对反序列化后的结果处理下即可,将figureurl属性中的“http:\/\/”替换为"http://"就没事了,如果所有的http://都是这个德性,你也可以直接原始字符串匹配替换,匹配所有“http:\/\/”替换为"http://"
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

最近看oauth2.0 QQ登录方面的东西,根据https://graph.qq.com/user/get_user_info?access_token=YOUR_ACCESS_TOKEN&oauth_consumer_key=YOUR_APP_ID&openid=YOUR_OPENID 换成自己的东西去访问时,后台看到返回的json字符串是下面的形式:"{\n    \"ret\": 0,\n    \"msg\": \"\",\n    \"nickname\": \"hello\",\n    \"gender\": \"男\",\n    \"figureurl\": \"http:\\/\\/qzapp.qlogo.cn\\/qzapp\\/100498747\\/F99597DE0A73FE5A4854DBBBE7BAD64E\\/30\"}
请问如何将这个字符串转换成json对象呢?为什么http路径那里有两个反斜杠?

你输出看看

输出就变成:{ "ret": 0, "msg": "", "nickname": "hello", "gender": "男", "figureurl": "http:\/\/qzapp.qlogo.cn\/qzapp\/100498747\/F99597DE0A73FE5A4854DBBBE7BAD64E\/30"}了,那个figureurl多了反斜杠啊
对啊 没问题的 你把json解析后就能用了