我是Flash开发的新手。
我有一个asp.net mvc网站,它有一个返回JSON的控制器动作。
我有一个Flash Media Server设置,需要每15分钟调用一次该控制器操作才能获得当前的时间表。我可以让FMS调用该站点(并且每15分钟没有问题),我现在将JSON作为字符串获取,但是我需要将其从字符串解析为对象,以便使用返回的数据。 / p>
任何指针或想法都会受到欢迎。
答案 0 :(得分:0)
Mike Chambers在github上有一个AS3库(https://github.com/mikechambers/as3corelib)。其中一个库用于JSON序列化和解析。这是他在Flex MXML文档中的示例,但在AS3中也是如此(您基本上获取JSON数据,然后在其上调用JSON.decode()以获取数组。):
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
layout="absolute"
creationComplete="service.send()" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import com.adobe.serialization.json.JSON;
private function onJSONLoad(event:ResultEvent):void
{
var rawData:String = String(event.result);
var arr:Array = (JSON.decode(rawData) as Array);
var dp:ArrayCollection = new ArrayCollection(arr);
grid.dataProvider = dp;
}
]]>
</mx:Script>
<mx:HTTPService
id="service"
resultFormat="text"
url="http://weblogs.macromedia.com/mesh/mashedpotato.json"
result="onJSONLoad(event)" />
<mx:DataGrid id="grid" right="10" left="10" top="10" bottom="10">
<mx:columns>
<mx:DataGridColumn headerText="Service" dataField="src"/>
<mx:DataGridColumn headerText="Title" dataField="title"/>
</mx:columns>
</mx:DataGrid>
答案 1 :(得分:0)
我猜您正在使用FMS的Web服务调用来获取数据。在Actionscript 1中,我认为你应该能够使用eval()来获取一个可以查询的对象。
var callback = mWebService.NewGuid();
mWebService.onResult = function(resultString){
var resultObject = eval(resultString);
trace(resultObject.mProperty1);
}