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

服务器和客户端数据传输的方式: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("...")...

}

猜你喜欢

转载自blog.csdn.net/n20164206199/article/details/85331505