jquery与JavaEE服务器交互中数据传输格式的设计

[b]1.服务器到客户端[/b]
数据格式在变,唯一不变的是里面类容,我们改变格式的目的是为了信息能够更好的组织,jquery里的dataType可以指定服务器返回数据的格式,如普通文本html、json等,但本人猜想,什么格式都是浮云,其实服务器返回的都是二进制流,或者说字符串,只不过jquery内部将其转换成json或者xml的数据格式。一般来说,如果服务器返回的是普通线性的内容,也就是一维的,比如说:
Query q=session.createSQLQuery("select usename from user join talk on user.id=talk.id")

这条sql查询返回的实质就是一个类型为String的数组,要将其从服务器返回客户端,dataType:html足矣,处理如下
List list=q.list();
String str="";
for(Iterator it=list.iterator();it.hasNext();){
str+=it.next()+"$";//分隔符,¥$£都可以
}

客户端用js解析我就不说了,详细参阅[url]jquery.org[/url]
但返回内容如果是非线性的就要果断json了:
Query q=session.createSQLQuery("select usename,sentence from user join talk on user.id=talk.id")

这条sql语句返回的就不是简简单单的数组了,是“数组”的数组,打上引号是因为在java里面它算不上数组,但js里面神马都是数组,java代码处理如下:

List list=q.list();
JSONArray json=new JSONArray();
for(Iterator<Object[]> it=list.iterator();it.hasNext();){
Object[]o=it.next();
JSONObject j=null;
try {
j = new JSONObject()
.put("username", o[0])
.put("sentence", o[1]);
} catch (JSONException e) {
e.printStackTrace();
}
json.put(j);
}

这样一个json在服务器就包装完成了,只需一个out.println()就能把它发送给客户端了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值