Dojo的内建JSON解析模块

原文链接:http://www.sitepen.com/blog/2012/01/05/native-json-parsing-in-dojo/
原作者:Kris Zyp

Dojo1.7引入了一个新的模块:dojo/json。该模块与原有的dojo.fromJson和dojo.toJson函数的不同点在于,它基于JavaScript语言内建支持的JSON API。它还采用了内建的JSON解析与序列化功能(如果存在的话),因此在任何浏览器上都能达到最快的速度。

新的API用起来很简单,而且如果你用过json.org函数库或者浏览器内建函数的话,就会更容易上手。一旦加载了"dojo/json"模块并赋予变量JSON后,我们就能使用其中的parse和stringify函数了。例如要解析一个JSON字符串:
define(["dojo/json"], function(JSON){
  var jsonStr = '{"name": "value"}';
  var object = JSON.parse(jsonStr);
  object.name -> "value";
});
如果浏览器支持,在这个parse函数中就会使用内建的解析函数,否则的话就退化为Dojo自己的实现。

反过来,要将一个对象序列化为JSON字符串:
define(["dojo/json"], function(JSON){
  var object = {"name": "value"};
  var jsonStr = JSON.stringify(object);
  jsonStr -> '{"name": "value"}'
});
日期数据的序列化

新的JSON模块现在已能够正确地序列化日期数据。以前dojo.fromJson会将日期对象序列化为"{}",现在则会自动转成标准日期格式( UTC的ISO标准格式)。

内建函数的性能 - 保持轻量

新的JSON模块通过has()函数来决定是否采用内置的JSON功能。这不仅仅是一种功能检测,它还意味着当你需要针对特定浏览器打包时,对于最新的主流浏览器而言,该模块只有几个字节的大小,这对于移动应用是非常有价值的。

遗留函数dojo.fromJson和dojo.toJson还将在于Dojo base中继续存在一段时间,但出于性能以及与标准的一致性的考虑,推荐采用这个dojo/json包中的parse和stringify函数。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值