加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex使用JSON格式与Java通信

发布时间:2020-12-15 04:42:17 所属栏目:百科 来源:网络整理
导读:今天发现,如果你的数据只有一个JsonObject,那么是否直接传JsonObject也可以呢?试试看: ? xml? version = "1.0" ? encoding "utf-8" ? mx:Application xmlns:mx "http://www.adobe.com/2006/mxml" ?layout "absolute" creationComplete "initApp()" mx: S

今天发现,如果你的数据只有一个JsonObject,那么是否直接传JsonObject也可以呢?试试看:

<?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{
????????????var stuFaculty:String?=?facultyxt.text;
????????????var stuMajor:String?=?majortxt;
????????????var stuInfo:Object?=?new Object;
????????????stuInfo.faculty?=?stuFaculty.major?=?stuMajor;
????????????var stuStr:String?=?JSON.encode(stuInfo;
????????????sendInfo.getStuMarks(stuStr}
????????public function showStuMark(event:ResultEvent{
????????????note.text?=?"Success....";
????????????var rawArray:Array;
????????????var rawData:String?=?event.result as String;
????????????rawArray?.decode(rawData)?as Array;
????????????stuMarkDataArray?(rawArray}
????????public function getTotalMarks:void
????????{
????????????getTotal.getTotalMarks;
????????????note"I am searching..."}
????????public function showTotalMark;
????
????????}
????]/mx:<mx:RemoteObject id"sendInfo"?destination"getStuMark"?showBusyCursor"true"result"showStuMark(event)"/"getTotal"?destination"getTotalMark"?showBusyCursor"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""64"?id"majortxt""66"?text"Major"<mx:Button x"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""Chinese"?dataField"chn""English"?dataField"eng"/mx:columns/mx:DataGrid"227"?width"304"?id"note"?height"24""192"?y"94"?label"总成绩"?click"getTotalMarks()"/mx:Panel>
????
/mx:Application>

?后台JSonTestJava.java

package?test;
import?net.sf.JSONArray.JSONObjectpublic?class?JsonTestJava?{
??public?String?getStuMarks(String?info{
?????result?=?new?String;
???? JSONObject jsonObject?=?JSONObject.fromObject;
?????String?faculty?=?jsonObject.getString"faculty"String?major?"major";
?????
???? JSONArray stuMarksArray?new?JSONArray;?
?????
?????if(facultyequals"IT")?&&?major"SE"{
????????forint?i=0;i<3+{
????????????JSONObject stuObj?new?JSONObject;?
????????????stuObjput,?100-i*2;
????????????stuObj+2*i;
????????????stuMarksArrayadd(stuObj}
?????}
?????=?stuMarksArraytoString;
?????return?result;
??}
??String?getTotalMarks{
???? JSONObject stuObj?;?
???? stuObj"name""leyond";
???? stuObj"mark""344"return?stuObj}
}

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

public?function showTotalMarkevent:ResultEvent:void{
????????????var marks:Objectdecoderesult?as?text?=?marksname?+?marksmark;?
????????}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读