一、JSON定义
在百度百科中的解释:JSON(java script Object Notation) 是一种轻量级的数据交换格式。它基于java script的一个子集。 JSON采用完全独立于语言的文本格式,JSON简单说就是java script中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。
1、对象:
对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:
数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","java script","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。简单地说,JSON 可以将 java script 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是java script很容易解释它。
以前学过的jquery 遍历 Dictionary 风格的数组(其实就是一个java script对象)
var stu={ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }
$.each(stu,function(key,value){
alert(key+"---"+value);
})
var people =
{
"演员":
[
{ "firstName": "Brett", "lastName":"要被取值的", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"作者": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"配乐": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}
//这里有3 个key,每个key对应的value 又是一个数组,数组中的每个元素,又是一个对象(对象由键值对组成)
//alert(people.演员[0].lastName) ; 可以取出 "要被取值的" 这个数组
//例子 用JSON 传输数据
//客户端
$(function(){
$("button").click(function(){
$.ajax({
url:"JSONTestServlet",
type:"post",
data:{userName:$("#userName").val()},
dataType:"JSON", //千万不要忘了指定返回数据的格式
success:function(user){
$("#divresult").append("用户id:"+user.id +"<br />");
$("#divresult").append("用户名:"+user.userName +"<br />");
$("#divresult").append("用户密码:"+user.password +"<br />");
$("#divresult").append("用户备注:"+user.note +"<br />");
}
});
});
});
//服务端
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//这里,要把 user转JSON格式的字符串返回
String str=" {\"id\":\"1\",\"userName\":\"张三\",\"password\":\"admin\" ,\"note\":\"这是备注\"} ";
response.setContentType("t