flex json java_Flex使用JSON格式与Java通信

Flex使用JSON格式与Java通信

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

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;

}

]]>

后台JSonTestJava.javaJava代码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();

}

}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;

}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了。这里就不多讲了。这个是这个例子的效果实例:

11a397d0-d7c4-3989-ac33-88d099929ceb.jpg

Reference:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值