JSON格式问题
项目中有一个通用的类负责将对象转换为JSON字符串以供AJAX调用
之前项目未采用jQuery,一直以JavaScript的eval()来解析JSON字符串
但最近ADMIN模块开始采用jQuery-1.4.2,却发现jQuery.parseJSON解析不了之前的字符串
以eval()解析时,JSON字符串必须以括号括起来
而以jQuery.parseJSON解析时最外层不能有括号
请问JSON的标准写法要不要带括号?
个人理解应该是不需要带括号吧,为什么eval()解析时必须带?(而且各浏览器表现一致)
<!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>