首页 新闻 会员 周边

c#解析json

0
悬赏园豆:40 [已关闭问题] 关闭于 2013-12-06 11:15

{"retCode":"000000","result":"<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="Cache-Control" content="no-Cache" /><meta name="viewport" content="width=device-width;" /><meta name="format-detection" content="telephone=no" /><title>哈哈</title></head><body>嘿嘿</body></html>"}


这是我在后台通过变量接收调用接口方法之后返回的数据,我想解析出上面json中的result然后通过response.write展示页面出来。不过我现在解析不了。求大神帮助。

高卿的主页 高卿 | 初学一级 | 园豆:8
提问于:2013-11-30 12:21
< >
分享
所有回答(5)
0

后台解析有很多的Json库啊。FastJson、LitJson、Newtonsoft.Json,随便一个都可以。发现你的字符串不是标准的Json格式,你是因为这个解析不出来吗?

幻天芒 | 园豆:37175 (高人七级) | 2013-11-30 12:45

应该是

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 12:47

@清月生: 能给我贴点代码么???我接触json太少

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 12:48

@清月生: 那你可以先处理字符串,修改为标准的Json。

看了你的字符串特点,两次替换之后,就标准了。Replace("=\"","=\\\"").Replace("\" ","\\\" ");

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-11-30 12:53

@清月生: http://www.cnblogs.com/xiaopohou/articles/3418765.html 这玩意网上太多了,代码也不多。随便看看就行。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-11-30 12:56

@幻天芒: 我试试看现。开始睡觉了。谢谢你哈

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 14:00

@幻天芒: 不行。在www.bejson.com里面检测还不是标准的格式。感觉

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 14:04

@清月生: 你没Replace吧,将双引号转码后,已经是标准的json格式。Replace要接收返回值才会有效。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-11-30 14:51

@幻天芒: Parse error on line 3: ...000", "result": "<!DOCTYPE HTML><htm ----------------------^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['还是这个错误。您能把QQ告诉我么。我想让你帮我看看,或者您测试下吧。把上面代码解析在检测一次。。

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 14:54

@清月生: 我Replace后,在Chrome上测试通过的。My Q:one zero two eight double three double two seven three.

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-12-01 22:19
0

你试下,将字符串里面的字符串“”之类前加上转义字符试下

幕三少 | 园豆:1384 (小虾三级) | 2013-11-30 13:10
0

先把你的json格式修改为标准的吧,这样你能解析出来吗?

妍珊 | 园豆:1169 (小虾三级) | 2013-11-30 13:57

如何变成标准的

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 14:04

@清月生: 

看看这个json提醒,希望你能想起点什么

支持(0) 反对(0) 妍珊 | 园豆:1169 (小虾三级) | 2013-11-30 14:38

@妍珊: 我看了这里我不知道是不是把双引号去掉就行。。真不知道如何处理。求给个经验。

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 14:40

@清月生: 我觉得你的json最起码得符合键值对的格式吧?另外可以对你的result再进一步的格式转换,试试,http://docs.python.org/2/library/json.html希望对你有所帮助吧

支持(0) 反对(0) 妍珊 | 园豆:1169 (小虾三级) | 2013-11-30 14:56

@妍珊: 我也知道了。。但是调用接口返回的数据。。有什么办法呢。。

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 14:59

@清月生: 那你就让接口再做一次处理,或者进行两次替换Replace("=\"","=\\\"").Replace("\" ","\\\" ");试试

支持(0) 反对(0) 妍珊 | 园豆:1169 (小虾三级) | 2013-11-30 15:05

@妍珊: 接口改动不可能。。。国企那帮人弄得。替换了。还是没有作用。

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-11-30 15:07
0

亲,您这个是字符串是Json的标准格式么?你自己利用Json转换工具看看http://json.parser.online.fr/。到处报错。

首先你得保证你的字符串是标准的json格式。然后才能转换成对象在页面中调用

你的json里面html所有的双引号应该换成单引号才正确:

{
"retCode":"000000",
"result":"<!DOCTYPE HTML><html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><meta http-equiv='Cache-Control' content='no-Cache' /><meta name='viewport' content='width=device-width;' /><meta name='format-detection' content='telephone=no' /><title>哈哈</title></head><body>嘿嘿</body></html>"
}

雾静 | 园豆:561 (小虾三级) | 2013-12-02 14:25

接口给的数据。。不太可能修改。

支持(0) 反对(0) 高卿 | 园豆:8 (初学一级) | 2013-12-02 14:29
0

没有办法。只能用substring

高卿 | 园豆:8 (初学一级) | 2013-12-06 11:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册