2009-10-31 17 views
11

मैं थोड़ी देर के लिए जेएसओएन एएस 3 के साथ काम करने की कोशिश कर रहा हूं, लेकिन इसका कोई फायदा नहीं हुआ। जब मैं JSON वापस प्राप्त करता हूं तो मुझे निम्न त्रुटि मिलती है:एक्शनस्क्रिप्ट 3 और जेएसओएन

टाइप त्रुटि: त्रुटि # 1034: टाइप जबरन विफल: ऑब्जेक्ट @ 26331c41 को ऐरे में परिवर्तित नहीं कर सकता।

मैंने ऑब्जेक्ट को "jsonData" के डेटाटाइप को बदलने की कोशिश की है, जो त्रुटि को हल करता है, लेकिन मुझे पूरी तरह से यकीन नहीं है कि मैं डेटा को कैसे पार्स कर सकता हूं।

package 
{ 
    import flash.display.Sprite; 
    import flash.net.URLRequest; 
    import flash.net.URLLoader; 
    import flash.events.*; 
    import com.adobe.serialization.json.JSON; 

    public class DataGrab extends Sprite { 

     public function DataGrab() { 

     } 

     public function init(resource:String):void { 
      var loader:URLLoader = new URLLoader(); 
      var request:URLRequest = new URLRequest(resource); 
      loader.addEventListener(Event.COMPLETE, onComplete); 
      loader.load(request); 
     } 

     private function onComplete(e:Event):void { 
      var loader:URLLoader = URLLoader(e.target); 
      var jsonData:Array = JSON.decode(loader.data); 
      trace(jsonData); 
     } 


    } 
} 

उत्तर

15

आप जब आप एक Object रूप jsonData चर था सही थे। उस चर के सभी गुण के माध्यम से पुनरावृति करने के लिए आप बस कुछ इस तरह कर सकता है:

var jsonData:Object = JSON.decode(loader.data); 
for (var i:String in jsonData) 
{ 
    trace(i + ": " + jsonData[i]); 
} 

आप जाँच करना चाहते थे वस्तु एक विशिष्ट संपत्ति आप की तरह कुछ इस्तेमाल कर सकते हैं निहित हैं:

var hasFooProperty:Boolean = jsonData.hasOwnProperty("fooProperty"); 
संबंधित मुद्दे