JSON står för "JavaScript Object Notation" och kan med stor fördel användas som datakälla istället för XML.
Fördelarna med JSON kontra XML är att det är kompakt, lätt att navigera i och man får automatiskt rätt datatyp på enklare objekt som Boolean, Number, Object, Array och String.
JSON läses in som en lång sträng med hjälp av exempelvis URLLoader, strängen måste serialiseras för att kunna användas och det finns några olika tredjepartsbibliotek för detta. Fram till Flash Player 10.3 fanns det inte inbyggd, men det kommer att komma i en uppdatering av 10.3 lite längre fram då det funnits i inkubatorn sedan mitten av maj. Denna inbyggda parser är upp till tio gånger snabbare än vissa tredjepartsbibliotek, så Adobe har verkligen jobbat på att få till en bra inbyggd parser.
Det finns några olika valideringsverktyg på nätet, jag brukar använda "JSON Formatter & Validator" http://bit.ly/lZNSJj, som är riktigt bra och ger en tydlig bild på vad som är fel i datastrukturen.
Exempel
Jag har slängt ihop lite exempeldata för att jämföra JSON och XML. Här visas det tydligt på hur kompakt JSON data är jämfört med XML. Jag har använt olika datatyper för att visa hur enkelt det är att typa objekt redan i JSON datan.
XML
<developers>
<developer>
<name>Patric Jonsson</name>
<ocupation>Flash platform devloper</ocupation>
<workstations>
<workstation>HP Z400</workstation>
<workstation>MSI Windtop AE2220-274US</workstation>
<workstation>HP G62-b30EO</workstation>
</workstations>
<mobiledevices>
<mobiledevice>iPad</mobiledevice>
<mobiledevice>iPhone 3G</mobiledevice>
<mobiledevice>iPhone 4</mobiledevice>
<mobiledevice>Nexus One</mobiledevice>
<mobiledevice>Samsung Galaxy Tab</mobiledevice>
</mobiledevices>
<tools>
<applications manefacturer="Adobe">
<application>Adobe CS 5.5 Master Collection</application>
</applications>
<applications manefacturer="Powerflasher">
<application>FDT 4</application>
</applications>
<applications manefacturer="FlashDevelop">
<application>FlashDevelop 3.3.4</application>
<application>FlashDevelop 4</application>
</applications>
</tools>
<age>34</age>
<length>182.5</length>
<islefthanded>false</islefthanded>
</developer>
<developer>
<name>Mikael Palm</name>
<ocupation>Flash platform devloper</ocupation>
<workstations>
<workstation>Apple MacBook Pro</workstation>
</workstations>
<mobiledevices>
<mobiledevice>iPad</mobiledevice>
<mobiledevice>iPhone 4</mobiledevice>
<mobiledevice>Nexus One</mobiledevice>
<mobiledevice>BlackBerry PlayBook</mobiledevice>
</mobiledevices>
<tools>
<applications manefacturer="Adobe">
<application>Adobe CS 5.5 Master Collection</application>
</applications>
<applications manefacturer="Powerflasher">
<application>FDT 4</application>
</applications>
</tools>
<age>33</age>
<length>176</length>
<islefthanded>true</islefthanded>
</developer>
</developers>
Jobba med JSON
För att jobba med JSON behöver man alltså något som serialiserar datan och för tillfället finns det alltså bara tredjepartsbibliotek. Jag har använt mig av den slöa as3corelib skriven av Mike Chambers (http://bit.ly/kRu9XM), det finns alltså andra som är snabbare om det är av vikt.
Först måste vi läsa in datafilen som jag har döpt till data.json och som ligger i samma nivå som min swf:
Längst ner i denna post kan du se hur objekten är typade i klasserna.
Dataobjekten är nu klara att användas:

Länkar till bra källor om JSON
JSON hemsida: http://bit.ly/ltQ54I
Wikipedia: http://bit.ly/lP1E4r
TheFlashBlog, Angry Natvie JSON Parsing in Flash: http://bit.ly/mm9fXi
Bytearray, Thibault Imbert bloggar om nya funktioner i Flash Player 10.3, http://bit.ly/iy6E8S
[English resume]
JSON is an acronym for "JavaScript Object Notation" and can with great advantages be used as data source instead of XML in flash based applications.
The advantages over XML isthat JSON is compact, human readable and automaticly gives you the correct datatype for the basic datatypes, Boolean, Number, Object, Array and String.
JSON is read into Flash Player as a long string with help of, say, URLLoader and the data must be serialized to be used. In Flash Player 10.3 there is no native support for JSON but there are some different third party libs that can be used for serialization. Native support for JSON will be released soon as it has been implemented in the incubator builds since mid May.
As for validation, I use the "JSON Formatter & Validator" http://bit.ly/lZNSJj, which really comes in handy when writing JSON data and gives a good overview of errors in the data structure.
Take a look at the above examples to learn how JSON can be used in Flash.
Klasser jag använt i mitt exempel
Developer klass (inte best practice att använda publika variabler, men för att denna post inte ska bli överdrivet lång har jag valt att använda det här):
Tool klass:















