我花了好几个小时围绕一个可能在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),我可以在其中找到编码静态方法。
有人可以告诉我我的错误在哪里? 谢谢。
答案 0 :(得分:6)
JSON.parse
和JSON.stringfy
是您在Flash Player 11 +中寻找的方法。
JSON.encode
和JSON.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);
它有效。