RSS Flash AS3 und JSON String auslesen

verfasst 04.10.2009 von Mario | kurze URL: /t769 | Kommentar schreiben

Flash AS3 und JSON String auslesen

Ein Datenaustausch zwischen Flash und PHP basiert meist auf XML-Dateien, jedoch ist das Handling nicht immer so einfach. Auch sind XML-Dateien bedingt durch ihre Struktur weit größer als der effektive Inhalt. Eine andere Möglichkeit für ein Datenaustausch wäre JSON. Der Vorteil ist zum ersten, dass die Dateien wesentlich kleiner sind. Zum zweiten kann man in AS3 sofort auf Array oder Object zugreiffen. JSON ist eigentlich optimal, wenn man bestimmte Parameter übergeben möchte. Und wie das ganze funktioniert, ist im Anschluss beschrieben.

Damit man in Flash AS3 überhaupt JSON benutzen kann, muss eine definierte Klasse importiert werden. An dieser Stelle auch gleich der Download der JSON-Klassen:

  • Datei: json_as3.zip
  • Größe: ca. 0.108 MByte
  • Upload: 2010-12-26 12:28:46
  • Downloads: 415

Die Ordner müssen sich dann im selben Verzeichnis befinden wie die jeweilige FLA-Datei.

Im Flash wird dann diese Klasse wie folgt eingebunden:
» Flash ActionScript
import com.adobe.serialization.json.JSON;


Zum Testen wird ein Test-String definiert. Dies kann auch eine Ausgabe einer Datenbank sein, die mittels URLRequest angefordert wird.
» Flash ActionScript
var obj1:String;
obj1 = '{"key1":9933,"key2":123456,"key3":"5.13.67.89"}';


Jetzt kann man sofort gezielt auf bestimmte Objekte zugreiffen:
» Flash ActionScript
var obj:Object = JSON.decode(obj1);
trace( obj.key1 );

/* Ausgabe 
9933
*/


Eine weitere Möglichkeit ist eine Kombination zwischen Array und Object. Auch dazu ein Beispiel:
» Flash ActionScript
import com.adobe.serialization.json.JSON;

var obj2:String;
obj2 = '{"Name":[{"key":"val1"},{"key":"val2"},{"key":"val3"}]}';

var obj:Object = JSON.decode(obj2);
trace( obj.Name );

/* Ausgabe 
[object Object],[object Object],[object Object]
*/


Mittels einer for-Schleife kann man dies nun recht einfach auslesen lassen:
» Flash ActionScript
import com.adobe.serialization.json.JSON;

var obj2:String;
obj2 = '{"Name":[{"key":"val1"},{"key":"val2"},{"key":"val3"}]}';

var obj:Object = JSON.decode(obj2);
for ( var i = 0; i < obj.Name.length; i++ ) {
  trace( obj.Name[i].key );
}

/* Ausgabe
val1
val2
val3
*/


Im Prinzip war das schon alles - viel Spass mit JSON :)

neuen Kommentar schreiben

Ich möchte automatisch eine E-Mail bei neuen Kommentaren erhalten.



Themen mit ähnlichen Inhalten


Tags zum Beitrag

json