代码改变世界

Flex数据交互之HttpService/Json处理

2009-11-15 23:34  LoujaDy  阅读(1785)  评论(0)    收藏  举报

第二种采用HttpService与服务器数据交互

其实WebService也可以返回Json数据给Flex,至于.net中使用Json我在这里用到了Newtonsoft.Json 而Flex端用到了as3corelib.swc,网上都可以下,哪下,用法就不在这里说了,没有的,不会用的google一下,很多相关文章.

1.新建一个.net页面和一般处理程序(如果想用两个.net页面,或两个一般处理程序都可以),

我会用.net页面来返回字符串,用一般处理程序来返回Json

选看.net页面下的代码

Code

 

再看看一般处理程序下的代码,它是用来返回Json数据的

 

Code

下面新建一个Flex项目

 

Code

                httpJson.url="http://192.168.2.8:80/ForFlexJsonData.ashx"                
                httpJson.contentType
="application/x-www-form-urlencoded";
                httpJson.useProxy
=false;                    
            
                
                httpJson.addEventListener(FaultEvent.FAULT,OnFault);
                httpJson.addEventListener(ResultEvent.RESULT,OnResultJson);
                httpJson.send();
            }
            
            
private function OnResultJson(event:ResultEvent):void
            {
                
                
//返回结果
                var data:String=new String(event.result);
                var json:JSONDecoder
=new JSONDecoder(data);                
                var arr:Array 
= (json.getValue().Rows as Array);
                
                var dp:mx.collections.ArrayCollection 
= new mx.collections.ArrayCollection(arr);
                dgData.dataProvider
=dp;    
            }

        ]]
>
    
</fx:Script>

    
<fx:Declarations>
        
<!-- Place non-visual elements (e.g., services, value objects) here -->
    
</fx:Declarations>
    
<s:Panel x="53" y="50" width="426" height="247" id="pnlXml" title="返回的结果">
        
<mx:DataGrid x="0" y="0" height="100%" width="100%" id="dgData">
            
<mx:columns>
                
<mx:DataGridColumn headerText="姓名" dataField="Name"/>
                
<mx:DataGridColumn headerText="性别" dataField="Sex"/>
                
<mx:DataGridColumn headerText="年龄" dataField="Age"/>
                
<mx:DataGridColumn dataField="Address" headerText="请求类型"/>
            
</mx:columns>
        
</mx:DataGrid>
    
</s:Panel>
    
<s:Button x="57" y="21" label="Get方式" id="btnCallGet" click="btnCallGet_clickHandler(event)"/>
    
<s:Button x="181" y="22" label="Post方式" id="btnCallPost" click="btnCallPost_clickHandler(event)"/>
    
<s:Button x="298" y="22" label="httpService返回Json" id="btnJson" click="btnJson_clickHandler(event)"/>
    
</s:Application>

 

运行Flex项目,呵呵,Get,Post和Json数据都交互成功了!

 

 有表达不清的地方,望大家指出,谢谢!

 

作者:Louja
出处:http://loujady.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此声明,且在文章页面给出原文连接,否则保留追究法律责任的权利。