Flash Media Server调用返回JSON数据的页面

时间:2009-09-21 16:07:49

标签: asp.net-mvc json parsing flash-media-server

我是Flash开发的新手。

我有一个asp.net mvc网站,它有一个返回JSON的控制器动作。

我有一个Flash Media Server设置,需要每15分钟调用一次该控制器操作才能获得当前的时间表。我可以让FMS调用该站点(并且每15分钟没有问题),我现在将JSON作为字符串获取,但是我需要将其从字符串解析为对象,以便使用返回的数据。 / p>

任何指针或想法都会受到欢迎。

2 个答案:

答案 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);
}