2

我花了几个小时来解决一个与 FLASH 中的 JSON 编码相关的可能愚蠢的问题。

我尝试做一些非常简单的事情:我制作了一个对象,我希望它在 JSON 中序列化。

但Flash告诉我

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

这是我的代码。这是本教程的副本。其中有问题(我猜不是在教程中,在我的代码中),但我不知道可以是什么:

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 )并且我可以在其中找到编码静态方法。

有人能告诉我我的错误在哪里吗?谢谢你。

4

2 回答 2

6

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

JSON.encode并且JSON.decode是 Adob​​e AS3 库的一部分,但由于 Flash Player 具有本机 JSON 解析器,现在您不需要该类。

于 2013-03-26T15:20:23.460 回答
0

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

JSON in 现在直接合并到 As3 中,因此无需使用 com.adobe.serialization.json.JSON

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

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

经过

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

它有效。

于 2013-03-26T15:27:04.337 回答