我对Flash开发非常新颖。Flash Media Server调用返回JSON数据的页面
我有一个asp.net mvc网站,有一个控制器操作返回JSON。
我有一个Flash媒体服务器设置,需要每15分钟调用一次控制器动作来获取当前时间表。我可以让FMS调用该站点(并且每15分钟没有问题),现在我将JSON作为字符串获取,但是我需要将它从字符串解析为对象,以便使用返回的数据。
任何指针或想法将非常受欢迎。
我对Flash开发非常新颖。Flash Media Server调用返回JSON数据的页面
我有一个asp.net mvc网站,有一个控制器操作返回JSON。
我有一个Flash媒体服务器设置,需要每15分钟调用一次控制器动作来获取当前时间表。我可以让FMS调用该站点(并且每15分钟没有问题),现在我将JSON作为字符串获取,但是我需要将它从字符串解析为对象,以便使用返回的数据。
任何指针或想法将非常受欢迎。
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>
我想你正在使用来自FMS的web服务调用来获取数据。在Actionscript 1中,我认为你应该可以使用eval()来获得一个可以查询的对象。
var callback = mWebService.NewGuid();
mWebService.onResult = function(resultString){
var resultObject = eval(resultString);
trace(resultObject.mProperty1);
}
Flash Media Server的至少当我问这个问题唯一支持的动作脚本版本1.我没有找到一个代码文件将处理JSON用于AS1,最终不需要在所有使用它。 – Solmead 2011-09-29 00:06:50
Solmead,你想分享代码吗? – 2011-10-19 09:49:48