JavaScript--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
在服务器端,可以手工拼接json字符串,也可以使用json接口来拼接json对象,然后在客户端进行解析显示
1、在服务器端
1、手动拼接字符串
String json="[{'province':'湖北'},{'province':'河南'}]";
out.println(json);
2、使用接口拼接(需要导入json_lib.jar包)
List<Person> list=new ArrayList<Person>();
Person p1=new Person("1", "tom");
Person p2=new Person("2", "mary");
Person p3=new Person("3", "jack");
list.add(p1);
list.add(p2);
list.add(p3);
JSONArray json=JSONArray.fromObject(list);//转化为json对象
out.println(json.toString());//返回时仍旧是string类型
2、在客户端对json对象进行解析
var data=xhr.responseText;
var json=eval("("+data+")");
//alert(json.length);
for(var i=0;i< json.length;i++)
{
alert(json[i].id);
alert(json[i].name);
}
/*
* 利用eval()函数转换成json数据格式,传入eval()函数的内容还是文本内容
* * 利用eval()函数进行转换json数据格式,需要利用"()"将传入的参数进行包裹
* * 如果不利用"()"进行包裹,传入的内容是"{}",这时eval()函数会将其识别成"空的语句块"
* * 如果利用"()"进行包裹,传入的内容是"{}",这时eval()函数会强行将其转换成json格式
*
* * 加上"()"一定转换成功
*/
1 //使用json来定义函数 2 var method = { 3 add:function(a,b){ 4 return a+b; 5 } 6 } 7 8 method.add(3,4);