2

我对 Flash 开发非常陌生。

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

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

任何指示或想法都将受到欢迎。

4

2 回答 2

0

我猜您正在使用来自 FMS 的 Web 服务调用来获取数据。在 Actionscript 1 中,我认为您应该能够使用 eval() 来获取您可以查询的对象。

var callback = mWebService.NewGuid();
mWebService.onResult = function(resultString){
    var resultObject = eval(resultString);
    trace(resultObject.mProperty1);
}
于 2012-10-18T15:45:57.183 回答
0

Mike Chambers 在 github ( https://github.com/mikechambers/as3corelib ) 上有一个 AS3 库。其中一个库用于 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>

于 2011-09-20T19:38:19.567 回答