2011-08-06 30 views

回答

3

所有你需要的JSON解码,首先可能使用as3corelib

var jsonString:String = '{"srcLocation":"pc","filename":"name","fileext":"jpg","url":""}'; 
var decodedObj:Object = JSON.decode(jsonString); 

然后,所有你需要做的就是遍历对象来获取所有的名称/值对:

for(var key:String in decodedObj) { 
    trace("Name: " + key + " - Value: " + decodedObj[key]; 
} 

这将输出:

Name: srcLocation - Value: pc 
Name: filename - Value: name 
Name: fileext - Value: jpg 
Name: url - Value: 
+0

此代码是完美的!非常感谢!!!另一个问题...如果我想改变它的值将decodeObj [key] =“新值”将保存在JSON对象上的新值?谢谢! –

+0

不,但你可以在任何时候用'JSON.encode(decodedObj)'重新编码你的对象;' – shanethehat

+0

我明白了......非常感谢! –

0

首先,你应该使用加载的URLLoa JSON文件DER然后将数据解码为对象 之后,你就可以得到那个 对象的属性的相应值:

 var myRequest:URLRequest = new URLRequest("Your JSON file Name"); 
     var myLoader = new URLLoader(); 
     myLoader.addEventListener(Event.COMPLETE, onload); 
     myLoader.load(myRequest); 

     function onload(evt:Event):void 
     { 
      var myData:Object = JSON.decode(myLoader.data); 
      trace(myData.firstName); 
      trace(myData.job); 
      trace(myData.age);    
     } 

任何进一步的帮助,请通过此链接: http://swati61.blogspot.com/2011/06/json-and-as3-communication.html

0

我建议你使用Adobe的Native JSON解码。