新手请教一个string转json的问题

ynwrs 2011-07-29 05:31:42
我最近刚开始学习c#,练习做个桌面程序,在数据调用方面遇到一个难题
我用HttpWebRequest向服务器请求数据,得到的是json格式的数据,(这个在必然是string类型的吧?)

比如这样的:

{\"totalCount\":\"1\",\"rows\":[{\"detail\":\"评估测试内容\r\n1.评估\r\n内容\",\"techId\":\"610502\",\"state\":0,\"otherItems\":null,\"womanName\":\"黄艳\",\"manPhone\":\"13892311934\",\"date\":\"null\",\"isDanger\":\"null\",\"manName\":\"王涛\",\"doctor\":\"null\",\"compltNote\":\"完成\",\"womanPhone\":\"\",\"id\":\"687524\",\"evaluateResult\":\"1\",\"manAge\":\"24\",\"homeAddress\":\"陕西省渭南市\",\"dangrObj\":\"0\",\"stationName\":\"1145\",\"hasContent\":\"4\",\"womanAge\":\"24\"}]}

我现在想把这个string转换成json(或者数组)方便调用,求教一个方法,尽量详细一点。


我之前找到了一个类,经过测试还算比较完美,对json数据的转化、修改都很好,只是不支持嵌套的string转json
...全文
472 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ynwrs 2011-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gefangliang 的回复:]

用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON )。



ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。



1,eval方式解析,恐怕这是最早的解析方式了。如下:



Js代码 ……
[/Quote]

我想要的是c#中对json的解析,不过js相关的也收集了,以备不时之需…… 谢谢~ 细细研究
ynwrs 2011-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fengxunyu 的回复:]

自己写吧,估计要用到栈,不好弄,以前也想过写这一类的,不过嫌太麻烦了。
[/Quote]

我手里有个现成的类,不过不能解析嵌套的格式,等周一我贴出来
心灵彩虹 2011-07-29
  • 打赏
  • 举报
回复
用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON )。



ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。



1,eval方式解析,恐怕这是最早的解析方式了。如下:



Js代码
1.function strToJson(str){
2. var json = eval('(' + str + ')');
3. return json;
4.}
function strToJson(str){
var json = eval('(' + str + ')');
return json;
}


记得别忘了str两旁的小括号。



2,new Function形式,比较怪异哦。如下



Js代码
1.function strToJson(str){
2. var json = (new Function("return " + str))();
3. return json;
4.}
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}

3,使用全局的JSON对象,如下:



Js代码
1.function strToJson(str){
2. return JSON.parse(str);
3.}
function strToJson(str){
return JSON.parse(str);
}

目前 IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法,以下是部分资料:



http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx

https://developer.mozilla.org/en/Using_JSON_in_Firefox



使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下



Js代码
1.var str = '{name:"jack"}';
2.var obj = JSON.parse(str); // --> parse error
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error
name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。
liugangsys 2011-07-29
  • 打赏
  • 举报
回复
一个没有分了的菜鸟,发贴纯粹是为了得分,谢谢楼主。
韬哥~~ 2011-07-29
  • 打赏
  • 举报
回复
自己写吧,估计要用到栈,不好弄,以前也想过写这一类的,不过嫌太麻烦了。

110,545

社区成员

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

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

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