`
wen辉
  • 浏览: 24791 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Flex使用JSON格式与Java通信

    博客分类:
  • FLEX
阅读更多
Flex使用JSON格式与Java通信

在使用Flex,Java,Json更新Mysql数据【高级篇】 中我记得Flex界面中数据是使用一个JsonArray封装了JsonObject之后传给Java后台的。可是今天发现,如果你的数据只有一个JsonObject,那么是否直接传JsonObject也可以呢?试试看:

Xml代码 <>
<?xml version="1.0" encoding="utf-8"?>  
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">  
<mx:Script>  
    <![CDATA[
         import mx.rpc.events.ResultEvent;
         import mx.collections.ArrayCollection;
         import com.adobe.serialization.json.JSON;
         [Bindable]
         private var stuMarkDataArray:ArrayCollection;
        
         private function initApp():void{
             stuMarkDataArray = new ArrayCollection();
         }
         public function sendStuInfo():void{
             var stuFaculty:String = facultyxt.text;
             var stuMajor:String = majortxt.text;
             var stuInfo:Object = new Object;
             stuInfo.faculty = stuFaculty;
             stuInfo.major = stuMajor;
             var stuStr:String = JSON.encode(stuInfo);
             sendInfo.getStuMarks(stuStr);
         }
         public function showStuMark(event:ResultEvent):void{
             note.text = "Success....";
             var rawArray:Array;
             var rawData:String = event.result as String;
             rawArray = JSON.decode(rawData) as Array;
             stuMarkDataArray = new ArrayCollection(rawArray);
         }
         public function getTotalMarks():void
         {
             getTotal.getTotalMarks();
             note.text="I am searching...";
         }
         public function showTotalMark(event:ResultEvent):void{
             note.text = event.result as String;
    
         }
     ]]>  
</mx:Script>  
<mx:RemoteObject id="sendInfo" destination="getStuMark" showBusyCursor="true" result="showStuMark(event)"/>  
<mx:RemoteObject id="getTotal" destination="getTotalMark" showBusyCursor="true" result="showTotalMark(event)"/>  
    <mx:Panel x="39" y="31" width="346" height="301" layout="absolute">  
        <mx:Label x="27" y="25" text="Faculty"/>  
        <mx:TextInput x="72" y="23" id="facultyxt"/>  
        <mx:TextInput x="72" y="64" id="majortxt"/>  
        <mx:Label x="27" y="66" text="Major"/>  
        <mx:Button x="27" y="92" label="各科成绩" width="109" click="sendStuInfo()"/>  
        <mx:DataGrid x="10" y="140" height="79" width="304" dataProvider="{stuMarkDataArray}">  
            <mx:columns>  
                <mx:DataGridColumn headerText="Math" dataField="math"/>  
                <mx:DataGridColumn headerText="Chinese" dataField="chn"/>  
                <mx:DataGridColumn headerText="English" dataField="eng"/>  
            </mx:columns>  
        </mx:DataGrid>  
        <mx:Label x="10" y="227" width="304" id="note" height="24"/>  
        <mx:Button x="192" y="94" label="总成绩" click="getTotalMarks()"/>  
    </mx:Panel>  
      
</mx:Application>  


后台JSonTestJava.java

Java代码
package test;  
import net.sf.json.JSONArray;  
import net.sf.json.JSONObject;  
public class JsonTestJava {  
  public String getStuMarks(String info){  
       String result = new String();  
       JSONObject jsonObject = JSONObject.fromObject(info);  
       String faculty = jsonObject.getString("faculty");  
       String major = jsonObject.getString("major");  
        
        JSONArray stuMarksArray = new JSONArray();    
           
     if(faculty.equals("IT") && major.equals("SE")){  
        for(int i=0;i<3;i++){  
             JSONObject stuObj = new JSONObject();   
             stuObj.put("math", 100-i*2);  
             stuObj.put("eng", 80+2*i);  
             stuObj.put("chn", 90-i);  
             stuMarksArray.add(stuObj);  
         }  
      }  
      result = stuMarksArray.toString();  
      return result;  
   }  
  public String getTotalMarks(){  
       JSONObject stuObj = new JSONObject();   
       stuObj.put("name", "leyond");  
       stuObj.put("mark","344");  
      return stuObj.toString();  
   }  
}  

使用的方法跟JSONArray差不多,只不过使用JsonArray的时候,需要先把每个jsonObject解析出来。所以比较方便的。但是 现在有一个问题,如果你在后台传给的前台Flex中的是一个JSONObject的数据,请问如何在前台解析出来的。就是这里的代码该如何写呢:

Js代码
public function showTotalMark(event:ResultEvent):void{  
    var marks:Object= JSON.decode(event.result as String);  
     note.text = marks.name + marks.mark;      
}  

这样就可以了,marks.name 和marks.mark就可以分别解析出name和mark。是不是很方便呢。当然如果你的数据很多,就需要用到JSAONArray了。这里就不多讲了。这个是这个例子的效果实例:



Reference: http://giantflyingsaucer.com/blog/?p=10&cpage=1
分享到:
评论

相关推荐

    Flex使用JSON格式与Java通信.docx

    ### Flex使用JSON格式与Java通信知识点详解 #### 一、背景介绍 随着互联网技术的发展,跨平台、跨语言之间的通信成为开发中常见的需求之一。在本文档中,我们将深入探讨如何利用Flex框架通过JSON(JavaScript ...

    flex使用 RemoteObject 与java进行json格式的数据交互

    本篇文章将深入探讨如何使用`RemoteObject`与Java进行JSON格式的数据交换,以便更好地理解和应用这一技术。 首先,`RemoteObject`是Flex框架中的一个关键组件,它允许Flex应用通过AMF(Action Message Format)协议...

    Flex使用json和xml数据交互

    本文将深入探讨Flex框架如何利用这两种格式进行数据交互,同时通过实例展示如何在Flex应用中与Java服务器端进行通信。 #### Flex与JSON及XML:互操作性概述 Flex是一个强大的框架,允许开发者通过MXML语言(一种...

    Flex与JSON及XML的互操作

    3. **互操作性**:Flex与JSON、XML之间的数据交换和处理能力,使得Flex能够灵活地与不同后端服务进行通信。 #### 深入理解Flex与JSON及XML的互操作 Flex的应用开发中,与JSON和XML的互操作是实现动态数据加载和...

    flex与java通信

    Flex与Java通信是Web开发中的一个重要领域,它允许前端用户界面(UI)通过Flex与后端Java服务进行数据交换和功能调用。Flex是一种基于ActionScript的富互联网应用程序(RIA)开发框架,而Java作为服务器端语言,提供...

    flex与java采用socket方式通信

    3. **数据序列化与反序列化**:由于Flex和Java可能使用不同的数据类型,因此在通信过程中通常需要将数据转换为通用格式,如JSON或XML。Flex可以使用ObjectSerializer进行序列化和反序列化,而Java则有多种选择,如...

    Flex_JSON_XML.zip_flex

    在Flex应用中,我们通常使用HTTP服务(如 BlazeDS 或 AMF)来与Java后端进行通信。BlazeDS是Adobe提供的一个开放源代码项目,它支持多种消息协议,包括AMF(Action Message Format)和HTTP/HTTPS。AMF是一种二进制...

    flex序列化json

    总之,Flex与Java等后端系统进行数据交互时,通过使用FlexJSON这样的库,可以方便地进行JSON的序列化和反序列化,实现数据的高效传输。理解并掌握这些工具和技巧,对于开发健壮的Flex应用程序至关重要。

    flex3 java 通信

    5. **Flash Remoting**:虽然不是Flex3与Java通信的首选方式,但Flash Remoting(通过NetConnection和NetStream类)仍然可用于与服务器端进行实时数据交换,不过它通常用于Flash Player而不是Flex。 6. **Security*...

    Flex与java通信 - 6.23

    Flex与Java通信是Web开发中的一个重要技术领域,它涉及到客户端与服务器端的交互。Flex是一种基于Adobe Flash Player或Adobe AIR运行时的富互联网应用程序(RIA)开发框架,主要用于创建动态、交互性强的用户界面。...

    Java_Flex,Java_Flex,Java_Flex

    3. HTTP服务:Flex可以与Java服务器通过HTTP进行通信,发送XML或JSON数据。这种通信方式相对简单,但效率较低,适合轻量级应用。 4. WebService:Java可以通过SOAP或RESTful WebService提供API,Flex客户端可以调用...

    flex与httpService通信(java)

    通过以上介绍,我们可以理解Flex如何使用`HTTPService`组件与Java后台进行通信,包括配置服务、发送请求和处理响应。在实际项目中,还需要考虑安全、性能优化以及错误处理等方面的问题。理解这一通信机制对于构建...

    Flex 与 java 低数据量通信

    总结起来,Flex3与Java的低数据量通信可以通过`HTTPService`组件来实现,选择不同的数据格式(如text、JSON或XML)取决于具体的应用需求和数据结构。在实际项目中,可能还需要考虑安全性、性能优化等因素。对于大型...

    flex与java的通信 Blazeds remoteObject

    Flex与Java的通信是Web应用程序开发中的一个重要环节,特别是在构建富互联网应用(RIA)时。Blazeds作为Adobe官方推出的中间件,为Flex与Java之间的数据交换提供了强大的支持。本篇将深入探讨Blazeds RemoteObject...

    Flex4 与Java通信,自己也在学习中!

    6. 异步与同步调用:Flex4与Java通信通常是异步的,这意味着客户端不会阻塞等待服务器响应,而是注册回调函数处理结果。这种方式提高了用户体验,但也增加了编程复杂性,需要处理错误和状态变化。 7. 错误处理:在...

    flex与java通信的小例子,适合初学者

    1. **Flex与Java通信的基础概念** - **Flex**:基于Adobe Flash Player或Adobe AIR运行的富客户端技术,用于创建交互式的、具有动态视觉效果的Web应用。 - **HTTPService**:Flex中的一个组件,允许客户端通过HTTP...

    BlazeDS实现flex与java通信

    在本文中,我们将深入探讨如何使用BlazeDS实现Flex与Java之间的通信,以及其核心功能和工作原理。 1. **Remoting服务** BlazeDS的Remoting服务允许Flex客户端直接调用Java后端的远程方法,仿佛这些方法是本地的。...

    创建Flex 与 Java 通信项目之Blazeds篇

    通过学习和实践创建Flex与Java通信项目,开发者可以构建出高效、可扩展的RIA应用,充分利用Flex的用户体验优势和Java的强大后端能力。同时,Blazeds提供的Remoting和Message Brokering机制为跨平台的分布式系统开发...

Global site tag (gtag.js) - Google Analytics