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": "[email protected]" }';
// 转换为对象
var obj:Object = JSON.decode(str) as Object;
不过,就像我说的,这个类很不完美,因为它对你的JSON数据格式要求太严格太BT了,以下几点都是不允许的:
- JSON字符串中不能有换行符
- 键值对中的每个键(Key)必须用双引号引起来
- 必须使用双引号,不能使用单引号
由于为了阅读方便,很多时候数据传进去的时候都有换行符,所以你必须在decode之前进行一下替换:
str = str.replace(/[\r\n]+/img, ' ');
当然,你也可以直接去修改JSON转换类的源代码,这样就不用每次转换之前都这么写一行了。
路过……本人表示没有压力……