AS3和JSON:错误1061

时间:2013-03-26 15:16:07

标签: json actionscript-3

我花了好几个小时围绕一个可能在FLASH中相对于JSON编码的愚蠢问题。

我尝试做一些非常简单的事情:我创建一个对象,我希望它以JSON序列化。

但Flash告诉我

> 1061: Call to a possibly undefined method encode through a reference with static type Class.

这是我的代码。它是教程here的副本。有些东西是错的(我的猜测不是在我的代码中),但我无法弄清楚它是什么:

import com.adobe.serialization.json.JSON;

var member1:Object = new Object();
member1.firstName = "John"
member1.lastName = "Parker"
member1.age = "32"
member1.country = "Canada"
member1.job = "Programmer"

var member2:Object = new Object();
member2.firstName = "Peter"
member2.lastName = "Anderson"
member2.age = "30"
member2.country = "USA"
member2.job = "System administrator"

var myData:Object = {staff:[member1, member2]};

var myJson:String = JSON.encode(myData);

trace(myJson);

在行var myJson:String = JSON.encode(myData); flash产生上述错误。 让我确切地说,类JSON就好了(my_project / com / adobe / serialization / json / JSON.as),我可以在其中找到编码静态方法。

有人可以告诉我我的错误在哪里? 谢谢。

2 个答案:

答案 0 :(得分:6)

JSON.parseJSON.stringfy是您在Flash Player 11 +中寻找的方法。

JSON.encodeJSON.decode是Adobe AS3 lib的一部分,但由于Flash Player现在具有本机JSON解析器,因此您不需要该类。

答案 1 :(得分:0)

好的。像往常一样,我在发布问题后几秒钟就找到了答案。

JSON现在直接并入As3,所以不需要使用com.adobe.serialization.json.JSON

所以我删除了导入并替换了:

var myJson:String = JSON.encode(myData);

通过

var myJson:String = JSON.stringify(myData);

它有效。