服务器和客户端数据传输方式的区别总结; xml&json的区别小结

本文深入探讨了XML和JSON两种数据格式在服务器与客户端之间的数据传输应用。详细讲解了这两种格式的序列化与反序列化过程,以及如何在Servlet层进行数据处理,并在JavaScript中解析这些数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器和客户端数据传输的方式:xml   &     json


介绍: 

xml: 

可拓展的标签元    一般形式为:

 

json:

轻量级的数据交换格式。  一般形式为:

{"  ":"  ","  ":"  "}  数组[{ },{ }] 

用法 :----------------请求转发list集合--------------------------------Servelet层

在Servlet层内有一个list集合 

List<School> list = schoolDao.findSchool(cid);

 

xml:

//创建一个XStream
XStream xstream = new XStream();

//替换类的路径为另一个字符串:  将显示school.class这个类的路径替换为school
xstream.alias("school",School.class);

//将类的某个属性设置成xml格式中的id:  将School这个类中的sid设置成它的id:  <school id="sid">
xstream.useAttributeFor(School.class,sid);

//将类对象序列化为xml格式   
String xml = xstream.toXML(list);

//设置响应类型为text/xml
response.setContentType("text/xml,charset=utf-8");
response.getWriter().write(xml);


//将xml格式反序列化为对象格式
Object obj = xstream.fromXML(xml);

json:

//JSONArray-------------->得到json的数组   [{},{},{}]  的形式
JSONArray jsonlist = JSONArray.fromObject(list);

//JSONObject------------->得到一个简单的json  {"":"","":""}   的形式
JSONObject json = JSONObject.fromObject(new School(1,"南方中学"));


String jlist = jsonlist.toString();
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(jlist);

 

用法:------------------得到list集合里的元素的值--------------------------------JS

XML:

/*得到的data格式:  data是基于list的
				 * <list>               
				 *     <school sid="1">       
				 *     		<sname>湖南工业大学</sname>           
				 *     </school>                     
				 * </list>
				 */
$.ajax({
    ....
    success:function(data){
        $(data).find("school").each(function(){
             //找到每个school元素并且都执行function方法
        var sid = $(this).attr("sid");
        var sname = $(this).children("sname").text();
            //        可以用.find("sname")区别在  上一章/.....(2)中  有讲
    
        })
    }

});

 json:

/*返回的data格式为:   !!!要记得先设置dataType:"json",
 * [
 * 	{
 * 		"sid":12,
 * 		"sname":"湖南林业科技大学"
 *  }
 * ]
 */
$(function(){
    $.ajax({
    ...
    dataType:"json",
    success:function(data){
    $(data).each(function(index,schs){
    //直接遍历data 并对其每个{}都执行function方法
    
    //可以自己console.log(index,schs)看看------》index是索引,schs是集合中的每个元素
    console.log(index,schs);
    
    //json的格式就很简单
    var sid = schs.sid;
    var sname = schs.sname;
})    
}
});
})

 

Attention:

在$.ajax({});  

最后那个 success:function(data){

不能写$(this).find("...")         this所指的是整个$.ajax的内容  m.fn.init [{…}]   而应该写成$(data).find("...")...

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值