昨天發了json的as3解析類,從大家的跟帖上來看,好多人還是不知道這個東西的,特建乙個掃盲貼。
其實在as中使用json其實並不是乙個必須或是很好的選擇,因為as對xml的解析已經很不錯了,但是為什麼可以考慮使用json呢,有以下幾點:
ps:我怎麼只能想到上面三點啊,會不會理由太少了?
json 是什麼?
簡單 json 示例
按照最簡單的形式,可以用下面這樣的 json 表示名稱/值對:
複製**
firstname=brett
複製**
但是,當將多個名稱/值對串在一起時,json 就會體現出它的價值了。首先,可以建立包含多個名稱/值對的記錄,比如:
複製**
從語法方面來看,這與名稱/值對相比並沒有很大的優勢,但是在這種情況下 json 更容易使用,而且可讀性更好。例如,它明確地表示以上三個值都是同一記錄的一部分;花括號使這些值有了某種聯絡。
值的陣列
當需要表示一組值時,json 不但能夠提高可讀性,而且可以減少複雜性。例如,假設您希望表示乙個人名列表。在 xml 中,需要許多開始標記和結束標記;如果使用典型的名稱/值對(就像在本系列前面文章中看到的那種名稱/值對),那麼必須建立一種專有的資料格式,或者將鍵名稱修改為 person1-firstname 這樣的形式。
如果使用 json,就只需將多個帶花括號的記錄分組在一起:
,,]}
複製**
這不難理解。在這個示例中,只有乙個名為 people 的變數,值是包含三個條目的陣列,每個條目是乙個人的記錄,其中包含名、姓和電子郵件位址。上面的示例演示如何用括號將記錄組合成乙個值。當然,可以使用相同的語法表示多個值(每個值包含多個記錄):
,,],
"authors": [,,
],"musicians": [,]
} 複製**
這裡最值得注意的是,能夠表示多個值,每個值進而包含多個值。但是還應該注意,在不同的主條目(programmers、authors 和 musicians)之間,記錄中實際的名稱/值對可以不一樣。json 是完全動態的,允許在 json 結構的中間改變表示資料的方式。
在處理 json 格式的資料時,沒有需要遵守的預定義的約束。所以,在同樣的資料結構中,可以改變表示資料的方式,甚至可以以不同方式表示同一事物。
ps:以上例子都是來自
,掌握 ajax,自己懶,看人家有就順便用了
噹噹當,我又回來了,上週忙這上班沒顧上寫用法,下面就介紹一下adobe的json類的用法。
上次發表的json類有問題(
這次是adobe的官方的類,我修改了一下包,這次就可以用了。
下面是教程,比較簡單:
1、伺服器端來的json
怎麼樣獲得伺服器端的json我就不說了吧(就是通訊),那麼得到的應該是乙個字串,存入變數serverjson,使用方式如下:
import json.*;
var json:object = new object();
json = json.decode(serverjson);
複製**
json就是乙個物件了,簡單吧。
舉乙個例子:
上面的json的一段**:,,
],"authors": [,,
],"musicians": [,]
} 複製**
存入變數:serverjson
**:var serverjson:string = ',, ],"authors": [,,],"musicians": [,]}'
var s:object = json.decode(serverjson);
//開始使用
trace(s.programmers[0].firstname);//輸出:brett
複製**
不是吧這麼簡單。其實轉變後就成為乙個物件了,可以通過點語法來訪問這些值了。xml靠邊去。
2、本地物件做成json
你要是能自己拼出json字串也可以,不過我們是在物件導向的世界啊,那麼我們都是物件啊,到時候物件直接就可以來用了。
舉乙個例子:
import json.*;
var myobject:object = new object();
myobject.ab = "adfsdf";
myobject.cd = math.random();
trace(json.encode( myobject ));//輸出:
複製**
這樣就可以給伺服器了。
總結:就兩個方法,json.decode(string),json.encode(object),有這麼簡單的方式實現傳輸量小,而且簡單的資料格式,我們為什麼還不用呢?
其實xml自然也有他自己的強勢,當乙個結構複雜的資料結構出現的時候,這個時候json就很難搞定了,xml就是首選了。
JSON解析教程
為了方便轉換json字串,首先要匯入jar包 使用方法 1 物件轉json public static void main string args 輸出的結果 2 json轉物件 public static void main string args student student gson.fro...
JSON的解析教程
解析json有兩個常見的方法 gson 谷歌 和fastjson 阿里 匯入jar包教程 book物件 public class book public book override public string tostring override public boolean equals objec...
JSON學習四 JSON裡面的類
json的定義 一種輕量級的資料交換格式,具有良好的可讀和便於快速編寫的特性。業內主流技術為其提供了完整的解決方案 有點類似於正規表示式 獲得了當今大部分語言的支援 從而可以在不同平台間進行資料交換。json採用相容性很高的文字格式,同時也具備類似於c語言體系的行為。json.org 為什麼用jso...