2012-10-11 4 views
9

Come analizzare il file .json scaricato con una stringa all'interno di una variabile stringa? Con as3corelib.swc.Come analizzare JSON (AS3)

+3

uso JSON.parse() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/ JSON.html Puoi fornire maggiori informazioni sul problema? –

+1

Aggiungi codice. Che cosa hai provato? Cosa hai cercato? Questo sito non parla di altre persone che fanno il lavoro e ti danno il codice. Benvenuto nello stack overflow, ad ogni modo =) – blue112

risposta

17

E qui andiamo, pieno di lavoro ad esempio dal mio progetto in corso:

protected function loadConfigFromUrl():void 
{ 
    var urlRequest:URLRequest = new URLRequest(CONFIG_URL); 

    var urlLoader:URLLoader = new URLLoader(); 
    urlLoader.addEventListener(Event.COMPLETE, completeHandler); 

    try{ 
     urlLoader.load(urlRequest); 
    } catch (error:Error) { 
     trace("Cannot load : " + error.message); 
    } 
} 

private static function completeHandler(event:Event):void { 
    var loader:URLLoader = URLLoader(event.target); 
    trace("completeHandler: " + loader.data); 

    var data:Object = JSON.parse(loader.data); 
    trace("The answer is " + data.id+" ; "+data.first_var+" ; "+data.second_var); 
    //All fields from JSON are accessible by theit property names here/ 
} 
3

La funzione di parsing JSON utilizzando as3corelib (cioè non la classe JSON nativo) è 'decodificare()'

JSON.decode(inputJson); 

Se il json ingresso viene codificato correttamente, stringhe devono essere disponibili all'interno dell'oggetto risultante. Potresti avere problemi nell'analizzare le stringhe se non sono state scappate correttamente, ma questo è un problema con i dati di input.

+5

JSON è ora integrato nel pacchetto predefinito di Flash Player chiamato [JSON.parse()] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/JSON .html) - as3corelib non è più necessario. Inoltre, la gestione del runtime di Flash Player è JSON è [prestazioni superiori] (http://stackoverflow.com/questions/7816784/load-json-faster-in-flex-4/7817042#7817042) rispetto all'implementazione di as3corelib. –

+0

@Jason Sturges - d'accordo, il parser JSON nativo dovrebbe essere la scelta preferita. La domanda originale si riferiva a come3corelib.swc, quindi mi riferivo a quel codice. – null