数据格式提要
在服务器端 AJAX 是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。服务器端的编程语言只能以如下 3 种格式返回数据:
XML
JSON
HTML
XML
优点:
XML 是一种通用的数据格式。
不必把数据强加到已定义好的格式中,而是要为数据自定义合适的标记。
利用 DOM 可以完全掌控文档。
缺点:
如果文档来自于服务器,就必须得保证文档含有正确的首部信息。若文档类型不正确,那么 responseXML 的值将是空的。
当浏览器接收到长的 XML 文件后, DOM 解析可能会很复杂
JSON
JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
规则如下:
1)映射用冒号(“:”)表示。名称:值
2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2
3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
4) 并列数据的集合(数组)用方括号(“[]”)表示。
[
{名称1:值,名称2:值2},
{名称1:值,名称2:值2}
]
5 元素值可具有的类型:string, number, object, array, true, false, null
<body>
<ul>
<li id="bj" name="beijing">北京</li>
</ul>
</body>
<script language="JavaScript">
//利用json格式表示一个人的信息
/*
public class Person{
private String name;
private String gender;
getter setter...
}
其他类中使用Person
Person p = new Person();
p.getName();
p.getGender();
*/
var person = {name:"zhangsan","gender":"male"};
alert(person.name);
alert(person.gender);
</script>
<body>
<ul>
<li id="bj" name="beijing">北京</li>
</ul>
</body>
<script language="JavaScript">
//利用json格式表示多个人的信息
var persons=[
{"name":"p1","age":18},
{"name":"p2","age":19}
];
alert(persons[1].age);
</script>
<body>
<ul>
<li id="bj" name="beijing">北京</li>
</ul>
</body>
<script language="JavaScript">
/*
public class Person{
private String name;
private Address address = new Address();
}
public class Address{
private String city;
private String zipcode;
}
*
*
*/
//利用json格式表示多个人的信息 params --key []---value
var person={
"name":"gfy",
address:{city:"shanghai",zipcode:'021'}
};
alert(person.name);
alert(person.address.city);
</script>
<pre name="code" class="java"><body>
<ul>
<li id="bj" name="beijing">北京</li>
</ul>
</body>
<script language="JavaScript">
//利用json格式表示多个人的信息 params --key []---value
var persons = {
param1:[
{"name":"p11","address":"a11"},
{"name":"p12","address":"a12"}
],
param2:[
{"name":"p21","address":"a21"},
{"name":"p22","address":"a22"}
]
}
//打印出a22
alert(persons.param2[0].address);
</script>