快速业务通道

转化服务器端传回的JSON数据 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

转化服务器端传回的JSON数据

时间:2011-01-05 javaeye hyj1254

讲讲JS的内置函数eval()的用法.

最初用到它是为了将后台传送过来的JSON格式的字符串转化为JSON对象。后来发现它的功能的确很强大,远不止这点,但今天只讲它。如果想深入了解可以参考下W3School。

进入正题:

Java代码

<script> var json=''{"id":1}''; alert(json.id); </script>

如果仔细看,可以发现,上面那段代码弹出的对话框是不能把id显示出来的。原因就是json只是个字符串对象而并不是真正的JSON对象,注意最外边那两个单引号。

Java代码

<script> var json={"id":1};//去掉单引号 alert(json.id); </script>

去掉单引号,id就成功显示了。此时的json就是个JSON对象。

现在从服务器端传回的JSON数据就是像第一个例子那样带单引号的,是不能直接使用的。那怎么办呢?

答案就是开头提到的eval()函数。

Java代码

<script> var json=''{"id":1}''; var jsonObj=eval("("+json+")");//注意这一行 alert(jsonObj.id); </script>

id成功显示。

注意两个要点:

1、json如果只是单个对象,而不是对象数组,如上例所示,则不能直接写成eval(json).

2、不能把eval("("+json+")") 写成eval(''("+json+")''),否则id照样不会显示。

再举一例:

Java代码

<script> var json=''[{"id":1}]''; var jsonObj=eval(json); alert(jsonObj[0].id); </script>

id照样能成功显示。注意区别:json包含的是一个对象数组,而非单个对象。但为什么这样就可以,而前面的例子却不可以,我就稀里糊涂了,还请大侠赐教。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号