转自:http://www.cnblogs.com/hyl8218/archive/2010/03/26/1694082.html
我们知道Invalid JSON错误导致的json对象不能解析,一般都是服务器返回的json字符串的语法有错误。这种情况下,我们只需要仔细的检查一下json就可以解决问题。
下面说一下,最近在使用jquery 1.4中使用$.ajax()方法解析json对象遇到的问题。
Json对象是:
[{name:'二手房出售',infoCount:0,pageUrl:'/ershoufang'},{name:'二手房求购',infoCount:0,pageUrl:'/qiugou'},{name:'二手房装修',infoCount:0,pageUrl:'/esfzhuangxiu'},{name:'二手回收',infoCount:0,pageUrl:'/huishou'},{name:'二手摩托车',infoCount:0,pageUrl:'/motor'},{name:'二手汽车求购',infoCount:0,pageUrl:'/ershoucheqg'},{name:'二手汽车转让',infoCount:9,pageUrl:'/ershouche'},{name:'二手市场',infoCount:0,pageUrl:'/ershoushichang'}]
不知道大家有没有发现这段json对象的问题。这样的写法在js脚本和jquery 1.4之前的版本都是没有问题的。因为在1.3及更早版本中,jQuery通过javascript的eval方法来解析json对象。在1.4中,jQuery使用了更严格的方法来解析json。所有的内容都必须使用双引号。
这点从jQuery.parseJSON(json) 可以看出,parseJSON在文档中的解释是:
接受一个JSON字符串,返回解析后的对象。
传入一个畸形的JSON字符串会抛出一个异常。比如下面的都是畸形的JSON字符串:
{test: 1} ( test 没有包围双引号)
{'test': 1} (使用了单引号而不是双引号)
另外,如果你什么都不传入,或者一个空字符串、null或undefined,parseJSON都会返回 null 。
凡是字符串都需要用双引号扩起来,数字,null,true,false不用而已
例如:
正确的JSON字符串:"{\"result\":\"true\", \"msg\":\"删除成功\"}"
错误的JSON字符串:"{result:\"true\", msg:\"删除成功\"}",:"{result:true, msg:删除成功}",:"{result:‘true’, msg:’删除成功'}"
分享到:
相关推荐
jQuery提供了方便的方法来处理JSON数据,包括`$.getJSON()`和`$.ajax()`等函数,可以方便地从服务器获取JSON数据并将其转化为JavaScript对象,或者将JavaScript对象转换为JSON字符串发送到服务器。 **jQuery的get...
在实际应用中,例如,当需要从服务器获取JSON数据并将其显示在网页上时,`$.ajax`或`$.getJSON`等jQuery方法可以用来发送Ajax请求。收到JSON响应后,使用`$.parseJSON`将JSON字符串解析成JavaScript对象,然后可以...
而`JSON.parse()`方法则用于将接收到的JSON字符串解析成JavaScript对象,便于操作和使用。 总结来说,"jQuery+get/post+Ajax+Json"的组合是现代Web开发中常用的数据交互技术,它使得前端可以轻松地与后端进行JSON...
主要介绍了JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能,结合实例形式分析了JSON.parse()与JSON.stringify()方法实现深拷贝的相关实现技巧与操作注意事项,需要的朋友可以参考下
在jQuery中,我们可以使用`$.parseJSON()`(在jQuery 3.0后被`$.json()`取代)将JSON字符串转换为JavaScript对象,或者使用`JSON.stringify()`将JavaScript对象转换为JSON字符串。 **jQuery、Ajax与JSON结合应用** ...
而Jquery库提供了一系列封装好的Ajax函数,如$.get(), $.post(), $.ajax(), 和$.getJSON(),这些函数简化了前端开发者与后端数据交互的过程。 ### 1. $.get() `$.get()`函数是最简单的一种异步请求方式,它发送一...
然而,原生的JavaScript Cookie操作并不支持直接存储复杂数据结构如JSON,这就需要像`jquery.jsoncookie`这样的工具来解决。 使用`jquery.jsoncookie.js`插件,你可以方便地将JSON对象序列化成字符串并存入Cookie,...
1. jQuery的AJAX方法:在文章中,通过使用jQuery提供的$.ajax()方法来发起异步请求。这个方法允许我们指定请求的类型(如GET或POST)、URL地址、传递的数据以及当请求成功时如何处理返回的数据。 2. 后台数据的返回...
- JSON.parse()和JSON.stringify():这两个是JavaScript内置的JSON处理方法,分别用于解析JSON字符串为JavaScript对象,和将JavaScript对象转换为JSON字符串。 - jQuery.extend():jQuery的扩展方法可以用来合并...
如果出现解析错误,如语法错误、缺少逗号或冒号等,`parse-json`不会立即抛出一个简单的错误对象,而是会捕获这个错误并添加更多的上下文信息。例如,它会包括错误发生的确切位置(行号和列号),这样开发者就可以...
同时,因为JSON格式是标准且跨语言的,所以不仅仅局限于JavaScript,其他编程语言如Python、Java等也都能很好地处理JSON数据,这极大地推动了Web应用程序的开发和数据交换。 总结来说,`jquery.json-2.4.min.js` ...
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
在这个例子中,我们使用`JSONObject.Parse`方法解析JSON字符串,并通过键来获取对应的值。注意类型转换,因为`JSONObject`中的值默认为`dynamic`类型,我们需要显式转换为实际类型。 此外,`com.force.json`还支持...
在上述代码中,`$.parseXML()`函数用于将XML字符串解析为DOM对象,然后`$.xml2json()`函数将DOM对象转换为JSON对象。转换后的JSON对象可以直接在JavaScript环境中使用,如遍历、操作或发送到服务器。 值得注意的是...
jQuery的$.getJSON()方法是另一个强大的工具,它是$.ajax()的简化版本,专门用于从服务器获取JSON数据。只需要提供URL和回调函数,jQuery会自动处理JSONP请求(如果需要跨域)以及数据解析。这极大地简化了数据交互...
在纯ASP环境中,由于缺乏内置的JSON处理功能,通常会借助客户端的JavaScript库,如jQuery、JSON.js或json2.js等来解析JSON。这些库提供了JSON.parse()函数,可以在客户端将JSON字符串转换为JavaScript对象。然而,...
在这个例子中,`parseJSON()`函数展示了如何使用`JSON.decode()`方法将JSON字符串转换为ActionScript对象。一旦解析完成,你可以像操作普通AS3对象一样访问JSON数据的属性。 除了基本的解析,as3corelib还提供了...
在jQuery早期版本和一些不支持JSON解析的浏览器中,经常使用`eval()`函数将JSON字符串转化为JavaScript对象。例如: ```javascript var data = "{'root': [{'name':'1','value':'0'}, {'name':'6101','value':'北京...
- `JSON Simple`是一个轻量级的Java库,可以用来解析和生成JSON对象。 - 提供的主要类有: - `JSONObject`:表示一个简单的JSON对象。 - `JSONParser`:用于解析JSON文本到`JSONObject`或`JSONArray`。 #### 2....