flex json java_Flex 处理 Json 格式的返回数据

前序 :

首先,知道什么是json,知道json 的格式是什么样子的,其次,理解json 处理的需求是来自于Flex和Java 的Servlet通信不能通过对象的方式传递,因此需要json。最后,注意flex json 和Java的json处理需要引入不同的包 :

flex 中需要:as3corelib.swc

包的添加的位置,flex目录下还是ecplilse 项目路径下(但是这个不确定一定要放在此处)

b0502e4b20bc95c3f0c89a94e39a79bf.png

Java 中需要:json-lib-2.2.2-jdk15.jar 和 jsoup-1.6.3.jar

我自己的放置位置 D:\software\zn,目的是为了我方便找,跟你没关系

ae0ee43483c3af68590d8ffa3cd67961.png

案例:

Flex主要的代码:

import com.adobe.serialization.json.JSON;

private function init():void{

var userid:int = 2;

requestSend(userid);

}

private function requestSend(userid:int):void{

http_service.addEventListener(ResultEvent.RESULT,http_service_resultHandler);

http_service.addEventListener(FaultEvent.FAULT,http_service_faultHandler);

http_service.url="http://localhost:8080/FlexProjectInformation/servlet/GetInformation?userid="+userid;

http_service.send(null);

}

protected function http_service_resultHandler(event:ResultEvent):void{

/** 处理为array  resultFormat="object" ***********************************/

var objectStr:String=event.result as String;

var JsonObj:Object =com.adobe.serialization.json.JSON.decode(objectStr);//目的是组装json

var arr:Array =JsonObj as Array;

for(var i=0 ;i

//处理json 中放置的东西

}

/** 处理为array  resultFormat="object" ***********************************/

/** 处理为arraycollection  resultFormat="object" ***********************************/

var objectStr:String=event.result as String;

var arr:Array = (JSON.decode(objectStr) as Array);

arrAC =new ArrayCollection(arr);

for(var i:int=0;i

var o:Object = arrAC.getItemAt(i);

Alert.show(o["projecttable"],o["projectname"],o["dnt"]);

}

/** 处理为arraycollection  resultFormat="object" ***********************************/

/** arraycollection 显示***********************************/

/** arraycollection 显示***********************************/

}

protected function http_service_faultHandler(event:FaultEvent):void{

Alert.show("没有数据");

}

]]>

Java Servlet主要的代码:

String userid = new String(request.getParameter("userid").getBytes("iso-8859-1"),"utf-8");

response.setHeader("Content-type", "text/html;charset=utf8");

response.setCharacterEncoding("utf8");

PrintWriter out = response.getWriter();

//sonprojectArrayList 是一个ArrayList

try {

JSONArray jsonArray = JSONArray.fromObject(sonprojectArrayList);

/*int jsonArraysize =jsonArray.size();

for (int j = 0; j 

JSONObject json = JSONObject.fromObject(jsonArray.get(j));

//out.print("json: "+json+"\n");

out.print(json+",");//输出数据格式 {}

}*/

out.print(jsonArray);//输出数据格式[{},{},{},{},{},{}]

} catch (Exception e) {

System.out.println("json :"+e.getMessage());

}

out.flush();

out.close();

ps :这个流程中最重要的是

resultFormat="object" resultFormat 返回值的设置,默认是object,当然需要的话可以指定输入的格式array xml 等。换句话说Java这端的数据组织格式影响flex端数据处理的效率和方便性,最好的方式是能让俩端的数据处理"统一化",或者说是

/** 可以生成 Arraycollection ,arraycollection中放置的是array

var objectStr:String=event.result as String;

var arr:Array = (JSON.decode(objectStr) as Array);

var arrAC:ArrayCollection =new ArrayCollection(arr);

*/

java 和数据库进行连接检索相关信息时候,将数据库中需要的信息一次性拿出来到内存中进行处理map等,如果内存处理允许的话。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值