当前位置: 代码迷 >> Java Web开发 >> JSON格式有关问题
  详细解决方案

JSON格式有关问题

热度:10336   发布时间:2013-02-25 21:09:37.0
JSON格式问题
项目中有一个通用的类负责将对象转换为JSON字符串以供AJAX调用
之前项目未采用jQuery,一直以JavaScript的eval()来解析JSON字符串
但最近ADMIN模块开始采用jQuery-1.4.2,却发现jQuery.parseJSON解析不了之前的字符串
以eval()解析时,JSON字符串必须以括号括起来
而以jQuery.parseJSON解析时最外层不能有括号


请问JSON的标准写法要不要带括号?
个人理解应该是不需要带括号吧,为什么eval()解析时必须带?(而且各浏览器表现一致)


HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>    <head>        <title>Test</title>        <script type="text/javascript" src="jquery-1.4.2.js"></script>        <script type="text/javascript">            $(function() {                var txt1 = "({\"list\":[{\"id\":\"1000000001\", \"name\":\"Stephen\"},{\"id\":\"1000000002\", \"name\":\"Clare\"}], \"returnCode\":\"000000\", \"message\":\"成功\"})";                try {                    var json = eval(txt1);                    $("#msg").append("<p>eval解析带括号Json成功:"+json.returnCode+"</p>");                } catch(e) {                    $("#msg").append("<p>eval解析带括号Json出错</p>");                }                try {                    var json = $.parseJSON(txt1);                    $("#msg").append("<p>jQuery解析带括号Json成功:"+json.returnCode+"</p>");                } catch(e) {                    $("#msg").append("<p>jQuery解析带括号Json出错</p>");                }                var txt2 = "{\"list\":[{\"id\":\"1000000001\", \"name\":\"Stephen\"},{\"id\":\"1000000002\", \"name\":\"Clare\"}], \"returnCode\":\"000000\", \"message\":\"成功\"}";                try {                    var json = eval(txt2);                    $("#msg").append("<p>eval解析不带括号Json成功:"+json.returnCode+"</p>");                } catch(e) {                    $("#msg").append("<p>eval解析不带括号Json出错</p>");                }                try {                    var json = $.parseJSON(txt2);                    $("#msg").append("<p>jQuery解析不带括号Json成功:"+json.returnCode+"</p>");                } catch(e) {                    $("#msg").append("<p>jQuery解析不带括号Json出错</p>");                }            });        </script>    </head>    <body>        <div id="msg"></div>    </body></html>


------解决方案--------------------------------------------------------
标准的是要带括号的
------解决方案--------------------------------------------------------
探讨
jQuery1.4之前的版本是通过eval()解析JSON字符串的

------解决方案--------------------------------------------------------
不带小括号的话,JS把JSON的内容当做一个JavaScript对象来处理。 个人理解是这样。因为不带小括号的JSON就是一个JavaScript对象形式(有属性,有值)。
------解决方案--------------------------------------------------------
正准备学习中~
------解决方案--------------------------------------------------------
用单引号嘛。。
------解决方案--------------------------------------------------------
晕死,这个还用问?

那是eval这个函数的问题,和json无关,你应该查eval()而不是去查json!
------解决方案--------------------------------------------------------
学习,没仔细研究过
------解决方案--------------------------------------------------------
  相关解决方案