Ajax基于JSON和XML的数据交换

JSON和XML都是数据交换格式
XML体积大,解析麻烦,较少用
JSON体积小,解析简单,较多用

基于JSON的数据交换

//An highlighted block
			PrintWriter out = response.getWriter();
			StringBuilder json = new StringBuilder();
            String jsonStr = "";
	
			// json.append("[");
   //      	连接数据库后将数据转化为JSON字符串
   //          while (rs.next()) {
   //              String name = rs.getString("name");
   //              String age = rs.getString("age");
   //              String addr = rs.getString("addr");
   //              //{"name":"   王五   ","age":  20   ,"addr":"   北京   "},
   //              json.append("{\"name\":\"");
   //              json.append(name);
   //              json.append("\",\"age\":");
   //              json.append(age);
   //              json.append(",\"addr\":\"");
   //              json.append(addr);
   //              json.append("\"},");
   //          }
   //          jsonStr = json.substring(0, json.length() - 1) + "]";

	//使用fastJSON快速将数据库数据转为JSON字符串
            List<Student> listStu = new ArrayList();
            while (rs.next()) {
                String name = rs.getString("name");
                int age = rs.getInt("age");
                String addr = rs.getString("addr");
                Student s = new Student(name, age, addr);
                listStu.add(s);
            }
        	//fastjson中的JSON对象
            jsonStr = JSON.toJSONString(listStu);

        	out.print(jsonStr);
//转为JSON对象
var stuList = JSON.parse(this.responseText);
var html = "";
for(var i = 0; i < stuList.length; i ++){//拿到每一个json
  var stu = stuList[i]
  //拼接html代码
  html += "<tr>\n" +
    "        <th>"+(i + 1)+"</th>\n" +
    "        <th>"+stu.name+"</th>\n" +
    "        <th>"+stu.age+"</th>\n" +
    "        <th>"+stu.addr+"</th>\n" +
    "    </tr>"
}
document.getElementById("info").innerHTML = html

基于XML的数据交换

//注意:使用XML交换数据时response.setContentType方法中text/html将替换为
    	//text/xml
		response.setContentType("text/xml;charset=UTF-8");
        PrintWriter out = response.getWriter();

		StringBuilder xml = new StringBuilder();
        xml.append("<students>\n         " +
                "             <student>\n" +
                "                <name>zhangsan</name>\n" +
                "                <age>20</age>\n" +
                "            </student>\n" +
                "             <student>\n" +
                "                <name>lisi</name>\n" +
                "                <age>22</age>\n" +
                "            </student>\n" +
                "   </students>\n");
        out.print(xml);
var XMLDoc = this.responseXML;
// console.log(XMLDoc)
//取出所有student元素(数组)
var students = XMLDoc.getElementsByTagName("student");
var html = ""

for(var i = 0; i < students.length; i ++){
  //拿到每一个student对象
  var student = students[i]
  //获取student对象下的所有子元素
  var childNodes = student.childNodes;

  html += "<tr>"
  html += "<th>"+(i + 1)+"</th>"
  for(var j = 0; j < childNodes.length; j ++){
    //拿到每一个子元素
    var node = childNodes[j]
    if(node.nodeName == "name"){
      html += "<th>"+node.textContent+"</th>"
    }
    if(node.nodeName == "age"){
      html += "<th>"+node.textContent+"</th>"
    }
  }
  html += "<tr>"

}
document.getElementById("info").innerHTML = html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值