本文实例讲述了js中json对象和字符串的理解及相互转化操作实现方法。分享给大家供大家参考,具体如下:
<script> var str="{'strv':["+ "{'a':'a11'},"+ " {'a':'b222'}"+ " ]}"; //如果放在一行更清楚:var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}"; var str2=eval('('+str+')'); // alert(str2.strv[1].a); var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; //如果放在一行更清楚:var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; // alert(jsonob.jsonv[1].j); /* var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}"; var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; 这样我们可以看出json对象和字符串是不一样的! 字符串就是字符串,json对象是一个对象。 虽然其内容都是我们看到的json格式,但是两者是有区别的。 我们想取出其中某个属性的值,其实是对json对象操作的(你能取出对象的属性值,但不能取出字符串的属性值,字符串没属性。)。 所以如果你拿到的是对象,那你就直接可以取值了, 例如jsonob.jsonv[1].j。 如果你拿到的是字符串,那你必须先转化成对象才可以取值, 字符串转对象有几种方法,js本身自带的是var str2=eval('('+str+')'); 这里的str2就是对象了。如果你引入了json.js文件,还可以使用其中的 方法,这些都已经封装好了。 总结:json只是一种格式。符合这种格式的可以是json对象,也可以是字符串。 要取属性值只能从对象里取。所以需要两者的转化。 js自带的转化方法: 字符串转成json对象: var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串 var jsonObject=eval('('+str+')');//json对象 json对象转成字符串: js本身没有这样的方法,你需要自己写这样的方法,才能转化。 从上可知,js本身只可以将字符串转成json对象, 但不可以将json对象转成字符串。其实我们可以用 json.js里的方法,而且更简单。这时你要引入json.js文件。 json.js里的方法: 字符串转成json对象: var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串 转成json对象方法1: var myJSONObject1=str.parseJSON(); 转成json对象方法2: var myJSONObject2=JSON.parse(str); json对象转成字符串: var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};//json对象 转成字符串方法1:var mystr1=jsonob.toJSONString(); 转成字符串方法2: var mystr2=JSON.stringify(jsonob); */ </script>
通过实验,我们应该明白,json其实是一种格式,js本身支持这种格式,
所以你不需要引入json.js就可以使用json对象。我们一般会引入json.js因为这里面封装了json对象和字符串转化的方法,方便我们使用(当然还有其他方法)。
通过本例我们更好地理解json对象和字符串之间的区别。
PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:
在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat
在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson
json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat
在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans
更多关于JavaScript相关内容可查看本站专题:《JavaScript中json操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】