Adobe的JSON转换类还不够完美

JSON格式的数据还是很方便的,在JavaScript中使用非常广泛。因此在Flash和JavaScript的交互中,使用JSON格式把数据传递给Flash也是一个很不错的选择。不过用AS3(ActionScript 3)来解析JSON是个麻烦的事情,还有有Adobe有相关的API——有一个com.adobe.serialization.json包,可以用来解析JSON格式的数据,并转换成和JS中类似的对象。

这个包使用起来非常简单,如下:

// 这是JSON格式的数据
var str:String = '{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }';
// 转换为对象
var obj:Object = JSON.decode(str)  as  Object;

不过,就像我说的,这个类很不完美,因为它对你的JSON数据格式要求太严格太BT了,以下几点都是不允许的:

  • JSON字符串中不能有换行符
  • 键值对中的每个键(Key)必须用双引号引起来
  • 必须使用双引号,不能使用单引号

由于为了阅读方便,很多时候数据传进去的时候都有换行符,所以你必须在decode之前进行一下替换:

str = str.replace(/[\r\n]+/img, ' ');

当然,你也可以直接去修改JSON转换类的源代码,这样就不用每次转换之前都这么写一行了。

1 comment on “Adobe的JSON转换类还不够完美”

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据