1、什么是JSON
JSON(javascript Object Notation)是一种轻量级的数据交换格式。
JSON是用字符串来表示javascript对象,例如可以在Servlet中发送一个JSON格式的字符串给客户端javascript,javascript可以执行这个字符串,得到一个javascript对象。
XML也可以用来作为数据交换,可以在Servlet中发送XML给javascript,然后javascript在去解析XML
2、JSON对象语法
JSON语法:
* 数据在 名称/值 的键值对中
* 数据有逗号分隔
* 花括号保存对象
*方括号保存数组
例:
var person={"name":"zhangsan","age":18,"sex":"male"}
josn值:
* 数字(整数或浮点数)
* 字符串(在双引号中)
* 逻辑值(ture或false)
* 数组(在方括号中)
* 对象(在方括号中)
* null
注意:
javascript中的eval()方法可以将字符串,转换成js代码来执行。
eg: eval( "(" + str + ")" ) //必须使用()将字符串括起来
3、json与xml比较
- 可读性:xml较之更好一些
- 解析速度:JSON本身就是javascript对象,所以简单很多,速度很快
- 流行度:在ajax领域,JSON更受欢迎。
4、json-lib的应用(重点)
①什么是json-lib
它可以把javabean转换json串
②使用的jar包
核心jar包:
json-lib.jar
json-lib依赖的jar包:
commons-lang.jar
commons-beanutilis.jar
commons-logging.jar
commons-collection.jar
ezmorph.jar
④核心类:
* JSONObject —> Map
》toString()
* JSONArray —-> List
》toString()
当map使用时:
public void fun(){
JSONObject msp=new JSONObject();
msp.put("name","zhagnsan");
msp.put("age",23);
msp.put("sex","male");
String s=msp.toString();
system.out.println(s);
}
out:{"name":"zhangsan","age":23,"sex":"male"}
当你已经有一个对象时,可以把对象转换成JSONObject对象:
JSONObject.fromObject()
public void fun(){
Person p=new Person("lisi",32,"female");
JSONObject msp=JSONObject.fromObject(p);
system.out.print(msp.toString());
out:
{"name":"lisi","age":32,"sex":"female"}
}
当list使用时:
Person p=new Person("lisi",32,"female");
JSONArray list=new JSONArray();
list.add(p);
system.out.println(list.toString());
List<Person> list1=new ArrayList<Person>();
//将list对象转换成JSONArray,在代用toString方法
system.out.println(JSONArray.fromObject(list).toString());