2012-03-20 73 views
0

我已閱讀了很多關於使用Actionscript解析JSON的內容。最初據說使用這個庫。 http://code.google.com/p/as3corelib/,但現在Flash Player 11似乎已經有了原生支持。帶JSON的Flash Twitter API

我的問題是,我找不到例子或幫助,從開始到結束的過程。我讀過的一切似乎都是從中間開始的。我對JSON沒有真正的經驗,所以這是一個問題。我甚至不知道如何將ActionScript指向它需要閱讀的JSON文件。

我有一個緊迫的截止日期,需要我通過JSON閱讀Twitter的項目。我需要獲取最近發佈的三條推文,以及發佈該推文的用戶,他們的推特名稱以及發佈推文的時間。

我已經建立了後端,我相信這裏的開發團隊,因此我的JSON文件或XML只需要指向,然後我需要在我已經設計的接口文本框中顯示值並創建。

任何幫助將不勝感激......我知道這裏有很多線程我只是不明白他們,因爲他們都有一些理解它開始。

回答

1

您需要:

  1. 加載數據,不管它是什麼。

  2. 解析特定格式的數據。

爲此,您通常會:

  1. 使用URLLoader類加載任何數據。 (只需轉到語言參考並查看如何使用此類的示例)。

  2. 使用任何解析器來解析您需要的特定格式。 http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/JSON.html這是對JSON API的參考,它也顯示使用示例。我不知道這些API是否在播放器的生產版本中,但仍然可能有相當多的FP 10.X播放器,所以我會有一個後備JSON解析器,但我建議使用此庫:因爲它速度更快,所以在as3corelib上使用http://www.blooddy.by/en/crypto/。內置的API與您在瀏覽器中找到的API沒有區別,因此如果您查找JSON JavaScript條目,則其用途應該與Flash類似。

後你解析JSON格式,你最終會與一些以下類型的對象:對象,數組,布爾型,數字,字符串。它也有字面意思是nullundefined。基本上,您將使用原生Flash數據結構,因此您只需要格外小心,因爲它們將被動態構建,這意味着您可能不會假定數據的部分存在 - 您必須始終檢查可用性。

+0

感謝您的快速響應!加載數據很簡單,至少我知道這很重要,謝謝。閃光燈的版本可能並不重要,因爲我們可以控制將顯示的環境。 不幸的是,我不知道如何解析這一點。我已經多次閱讀Adobe的文檔,不知道他們在說什麼:S你知道我可以一步一步閱讀的任何簡化版本。我發現Adobe的文檔在大多數時候都會讓人感到困惑。 – 2012-03-20 20:57:03

0

wvxvw的回答很好,但我認爲跳過了解釋JSON本身是什麼。JSON是純文本,JavaScript對象符號,當你在屏幕上閱讀文本,它看起來像這樣

http://www.json.org/example.html

您可以通過側JSON和XML(純文本格式)見一個側面基本上JSON是一堆名稱值對。

當你使用JSON.parse(「你的JSON字符串在這裏」)時,它將轉換爲AS3「動態對象」,這些對象只是普通對象(其屬性可以先前未被定義,因此是動態的)。但是,爲了使長話短說,把你在上面的鏈接看到的例子,複製和粘貼JSON作爲AS3一個字符串變量,使用

 var str:String = '{"glossary": {"title": "example glossary","GlossDiv": {"title": "S","GlossList": {"GlossEntry": {"ID": "SGML","SortAs": "SGML","GlossTerm": "Standard Generalized Markup Language","Acronym": "SGML","Abbrev": "ISO 8879:1986","GlossDef": {"para": "A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso": ["GML", "XML"]},"GlossSee": "markup"}}}}}'; 
     var test:Object = JSON.parse(str); 

方法的字符串,它存儲在一個變量和使用調試器來查看產生的對象是什麼。據我所知,JSON實際上沒有其他任何東西,它只是這種用於存儲數據的格式(您不能使用E4X,因爲它不是基於XML的,因爲它比XML稍微簡潔,沒有結束標籤,但是在我的opionion可讀性稍差...但是有效的javascript)。 AMF,JSON和XML之間的性能收益/損失的一個很好的分解,請查看此頁面:http://www.jamesward.com/census2/雖然很多時候,如果您不是在使用傳遞消息格式或協議時沒有選擇建立服務,理解它們的性能成本是很好的。