在JavaScript 中,怎样把一个把对象转化成字符串 JSON 字符串

将字符串转换为json对象_正确语法【javascript吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:147,057贴子:
将字符串转换为json对象_正确语法收藏
&script type="text/javascript"&var a=50,b="xxx";var arr="{id:"+a+",name:'"+b+"'}";arr=eval('('+arr+')');alert(arr.name)&/script&注:在字符串两端再加上括号然后eval就ok了
javascript, 甲骨文专注javascript 10年,相信20万名学员的眼光.it企业招聘必选甲骨文学员,80%的百强软件合作伙伴.高薪就业就选 甲骨文.
除了 eval ,还有别的办法吗?
应该没有比 eval 更简洁的办法了 如果要自己对字符串里的东西进行解析的话。。。感觉蛮麻烦的
json封装包?
浏览器环境下,加一个 Script element 行不行?
script也是element当然可以加了
回复:7楼jQuery 用这个办法动态加载 JavaScript
登录百度帐号推荐应用2014年5月 Java大版内专家分月排行榜第三
2014年5月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。17638人阅读
HTML+JavaScript(36)
&script language=&javascript&&
var user = '{name:&张三&,age:23,'+
'address:{city:&青岛&,zip:&266071&},'+ 'email:&.cn&,'+
'showInfo:function(){'+
'document.write(&姓名:&+this.name+&&br/&&);'+
'document.write(&年龄:&+this.age+&&br/&&);'+
'document.write(&地址:&+this.address.city+&&br/&&);'+
'document.write(&邮编:&+this.address.zip+&&br/&&);'+
'document.write(&E-mail:&+this.email+&&br/&&);} }';
var u = eval('('+user+')');
u.showInfo();
1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:
var u = eval('('+user+')');
为什么要 eval这里要添加('('+user+')') ”呢?
原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval(&{}&); // return undefined
alert(eval(&({})&);// return object[Object]
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:
$.getJSON(&/&,{param:&jcuckoo&},function(data){
//此处返回的data已经是json对象
//以下其他操作同第一种情况
$.each(data.root,function(idx,item){
&&& if(idx==0){
&&&&&&&//同countinue,返回false同break
&&& alert(&name:&+item.name+&,value:&+item.value);
这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。
第二种解析方式就是使用Function对象来完成,它的典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析
var json='{&name&:&userName&,&age&:28}';
data =(new Function(&&,&return &+json))();
此时的data就是一个会解析成一个 json对象了.
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1227678次
积分:12743
积分:12743
排名:第1051名
原创:275篇
转载:51篇
评论:209条
(2)(1)(2)(7)(3)(1)(1)(4)(3)(1)(6)(2)(3)(2)(1)(1)(1)(2)(2)(2)(1)(8)(4)(4)(1)(6)(4)(8)(2)(1)(1)(4)(5)(8)(1)(5)(5)(4)(16)(5)(2)(1)(2)(2)(1)(1)(2)(3)(4)(3)(1)(1)(7)(6)(1)(1)(2)(4)(8)(13)(2)(8)(32)(52)(23)(2)(4)本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 将数组转化成对象 的文章

 

随机推荐