首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JSON用于存储键值对的替代方法是什么,这可以很容易地使用Jquery进行解析?

JSON用于存储键值对的替代方法是什么,这可以很容易地使用Jquery进行解析?
EN

Stack Overflow用户
提问于 2011-08-06 14:25:21
回答 2查看 1.2K关注 0票数 0

我需要将一些数据以键、值对的形式存储在服务器上,这些数据将被传输到前端,并转换为javascript数组以供进一步处理。我选择了JSON格式并构建了一个小的json。出于某种原因,我使用‘jQuery1.3.2’进行测试,当我转到‘jQuery1.6.2’时,我的代码停止工作,我发现这是因为jquery (1.4+)忽略了无效的JSON。

从JSON 1.4开始,如果JSON文件包含语法错误,请求通常会以静默方式失败。为此,避免频繁手工编辑JSON数据。JSON是一种数据交换格式,其语法规则比JavaScript的对象文字表示法更严格。

那么,对于json来说,有什么好的、低带宽的替代方案呢? Jquery很容易用Jquery进行解析,而Jquery很容易手工编辑,语法也不那么严格。(并不是我打算犯语法错误,但万一有错误,不要让一切都停止工作)

或者,是否有一种方法强制jquery解析无效的JSON?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-06 14:32:11

jQuery核心团队的一名成员发布了这个解决方案,以便为JSON获得1.4之前的功能:

代码语言:javascript
运行
复制
$.ajax({url: "/url", 
  dataType: "json",
  success: function(json) {
    // do something with json
  }
});

// becomes

$.ajax({url: "/url",
  dataType: "text",
  success: function(text) {
    json = eval("(" + text + ")");
    // do something with JSON
  }
});

http://yehudakatz.com/2010/01/15/jquery-1-4-and-malformed-json/

这就是你要找的东西吗?

票数 2
EN

Stack Overflow用户

发布于 2011-08-06 14:38:58

您是否尝试过通过验证器(如JSONLint )传递JSON,然后实现错误避免代码?您可以使用eval()解决方案,因为这是完全有效的。在使用来自第三方位置的数据时要小心,因为数据可能包含恶意命令。

根据要传递的数据的范围,您可能能够以分隔的方式输出数据,只需使用一个简单的$.ajax()调用来通过一个循环分隔分隔的数据并相应地处理它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6967449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档