2013-03-26 67 views
2

我花了好幾個小時來解決相​​對於FLASH中的JSON編碼可能很愚蠢的問題。AS3和JSON:錯誤1061

我試着做一件非常簡單的事情:我做了一個對象,我希望它能在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:字符串= JSON.encode(MYDATA的) ;閃光燈會產生上述錯誤。 讓我確定JSON類很好(my_project/com/adobe/serialization/json/JSON.as),並且我可以在其中找到編碼靜態方法。

有人可以告訴我我的錯誤在哪裏嗎? 謝謝。

回答

6

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

JSON.encodeJSON.decode是Adobe AS3庫的一部分,但由於Flash Player現在擁有本機JSON解析器,因此您不需要該類。

+0

嗨。謝謝。而已。我回答下面我自己的問題,因爲我沒有看到你的帖子,在我的腦海裏回答:) – 2013-03-26 15:29:40

0

好的。像往常一樣,我在發佈我的問題幾秒後找到答案。

JSON在現在可直接在AS3註冊成立,所以沒有必要使用com.adobe.serialization.json.JSON

所以我刪除了進口代替:

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

通過

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

它的工作原理。

+2

是的,你偶然發現了曖昧的類命名。爲了使用'com.adobe.serialization.json.JSON'方法('encode()'等),你必須做完整的分類'com.adobe.serialization.json.JSON.encode(myData);' – Vesper 2013-03-26 15:32:27