首页 新闻 会员 周边

HttpUtility.ParseQueryString

0
悬赏园豆:20 [已解决问题] 解决于 2013-12-27 14:56

Stream postStream = GetPostDataAndUid(stream);
StreamReader sr = new StreamReader(postStream);
string s = sr.ReadToEnd();
sr.Dispose();
NameValueCollection qs = HttpUtility.ParseQueryString(s);
DownloadUserDto downloadDto = new DownloadUserDto();
downloadDto.account_id = qs["account_id"];
downloadDto.token_id = qs["token_id"];
downloadDto.limit_time = qs["limit_time"];
downloadDto.matching_id = qs["matching_id"];

s返回的值是:{"account_id":"YHLibrary02","limit_time":"12\/27\/2013 10:03:32 AM","matching_id":"YHmachUid02","token_id":"YHToken02"}

求解,为什么不能通过ParseQueryString(s)解析成键值对?

Deeper Love的主页 Deeper Love | 初学一级 | 园豆:171
提问于:2013-12-27 10:07
< >
分享
最佳答案
0

首先,回答为什么不能解析:因为你的数据不满足QueryString的字符串格式,正确的应该是"account_id=YHLibrary02&tt=1";

再者,你这个数据满足Json格式,建议用Json反序列化。常用Json组件:Json.Net(Newtonsoft.Json),FastJson,LitJson。

收获园豆:20
幻天芒 | 高人七级 |园豆:37175 | 2013-12-27 12:53
其他回答(2)
0

这个是json格式,建议用Json.NET进行解析

dudu | 园豆:30979 (高人七级) | 2013-12-27 10:13
0

@dudu正解,Json.NET好方法。

DownloadUserDto downloadDto=JsonConvert.DeserializeObject<DownloadUserDto>(s);

这样直接调用应该就差不多了。

aehyok | 园豆:1212 (小虾三级) | 2013-12-27 10:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册