如何过滤掉json字符串里面的反斜杠?

山林大 2013-08-13 04:37:42
最近看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路径那里有两个反斜杠?
...全文
88584 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_16618187 2015-03-10
  • 打赏
  • 举报
回复
出现反斜杠的原因、是因为序列化了两次、用Replace是替换不了的、只有反序列化才能解决此问题
雷金川 2014-11-26
  • 打赏
  • 举报
回复
其实它的 \" 是一个双引号的转义字符,在MVC 中 直接return Content(json字符串) 就行了。
Frank__Hu 2014-10-10
  • 打赏
  • 举报
回复
引用 11 楼 iqv520 的回复:
最终是通过replace进行处理,或者勤快点自己写个json的解析类
替换不掉啊,怎么回事? s1 = s1.Replace("\\", "");
山林大 2013-08-25
  • 打赏
  • 举报
回复
最终是通过replace进行处理,或者勤快点自己写个json的解析类
showjim 2013-08-25
  • 打赏
  • 举报
回复
引用 10 楼 sp1234 的回复:
QQ专为lz服务?不然怎么会如此啊?
可能白金VIP服务。
  • 打赏
  • 举报
回复
QQ专为lz服务?不然怎么会如此啊?
聆听灬莫问 2013-08-24
  • 打赏
  • 举报
回复
引用 8 楼 shimin555 的回复:
[quote=引用 2 楼 iqv520 的回复:] [quote=引用 1 楼 shimin555 的回复:] [quote=引用 楼主 iqv520 的回复:] 最近看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路径那里有两个反斜杠?
你输出看看[/quote] 输出就变成:{ "ret": 0, "msg": "", "nickname": "hello", "gender": "男", "figureurl": "http:\/\/qzapp.qlogo.cn\/qzapp\/100498747\/F99597DE0A73FE5A4854DBBBE7BAD64E\/30"}了,那个figureurl多了反斜杠啊[/quote]对啊 没问题的 你把json解析后就能用了[/quote]或者你让给你传JSON的文件滤掉那两个斜杠
聆听灬莫问 2013-08-24
  • 打赏
  • 举报
回复
引用 2 楼 iqv520 的回复:
[quote=引用 1 楼 shimin555 的回复:] [quote=引用 楼主 iqv520 的回复:] 最近看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路径那里有两个反斜杠?
你输出看看[/quote] 输出就变成:{ "ret": 0, "msg": "", "nickname": "hello", "gender": "男", "figureurl": "http:\/\/qzapp.qlogo.cn\/qzapp\/100498747\/F99597DE0A73FE5A4854DBBBE7BAD64E\/30"}了,那个figureurl多了反斜杠啊[/quote]对啊 没问题的 你把json解析后就能用了
qldsrx 2013-08-22
  • 打赏
  • 举报
回复
原来你说的是http后面的反斜杠,那个的确是数据本身的错误,但是我有点不敢相信,QQ居然会犯这种低级错误,看来树大有蛀虫啊,写这接口的人水平不行,自己进行Json字符串拼接的时候,多输出了一次反斜杠。 对于这种错误数据,既然你已经知道问题了,那么处理也不难,只要对反序列化后的结果处理下即可,将figureurl属性中的“http:\/\/”替换为"http://"就没事了,如果所有的http://都是这个德性,你也可以直接原始字符串匹配替换,匹配所有“http:\/\/”替换为"http://"
qldsrx 2013-08-14
  • 打赏
  • 举报
回复
字符串里面的\n是转义表示法,其实还有\u1234这样的unicode表示法,都表示某个字符,不能将其过滤,过滤了就失去了它本来的含义,实际打印内容时,会自动处理为对应字符的。
卧_槽 2013-08-14
  • 打赏
  • 举报
回复
Replace("\\","\")
山林大 2013-08-14
  • 打赏
  • 举报
回复
引用 4 楼 qldsrx 的回复:
字符串里面的\n是转义表示法,其实还有\u1234这样的unicode表示法,都表示某个字符,不能将其过滤,过滤了就失去了它本来的含义,实际打印内容时,会自动处理为对应字符的。
前面打印都还正确,到http那里打出来就多了个反斜杠了,得到的url不正确
sjbcl2008 2013-08-14
  • 打赏
  • 举报
回复
输出后,就自动处理了,没有了
山林大 2013-08-13
  • 打赏
  • 举报
回复
引用 1 楼 shimin555 的回复:
[quote=引用 楼主 iqv520 的回复:] 最近看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路径那里有两个反斜杠?
你输出看看[/quote] 输出就变成:{ "ret": 0, "msg": "", "nickname": "hello", "gender": "男", "figureurl": "http:\/\/qzapp.qlogo.cn\/qzapp\/100498747\/F99597DE0A73FE5A4854DBBBE7BAD64E\/30"}了,那个figureurl多了反斜杠啊
聆听灬莫问 2013-08-13
  • 打赏
  • 举报
回复
引用 楼主 iqv520 的回复:
最近看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路径那里有两个反斜杠?
你输出看看

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧