日期:2018—10—4
今日学习将Javabean对象转换成json数据对象
1、学习ajax数据交换
2、学习如何将Javabean对象转换成json数据对象
目前,学习了ajax响应的数据格式有3种(字符串,xml,json),今晚学习ajax中最受欢迎的一种数据交换格式:json;json数据交换格式简单的说就是将从服务器中查询并获取到的Javabean对象的数据转换成json数据格式响应给客户端。今天晚上就学习如何将Javabean数据格式转换成json数据格式响应给客户端
一、json简介
1、什么是json?
说简单点,json就是js提供的一种数据交换格式,目前在ajax中最受欢迎。
2、json语法
{}:这对大括号是表示一个对象
(1) 其中属性名必须使用双引号括起来,单引号不可以!
(2) 其中属性值可以是以下几种
a.null
b.数值:数值不用双引号
c.字符串
d.数组:数组需要使用[]括起来
e.boolean值:true和false
比如:
var person = {"name":"ZhangSan" , "age":18 , "sex":"male"};
3、 json与xml比较
可读性:xml胜出
解析难度:json本身就是js对象,所以简单
流行度:xml已经流行好多年了,在ajax领域,json更受欢迎
二、如何将Javabean转换成json呢?
在这里,我们直接使用一个工具来解决,即json-lib.jar包。这个包有什么用呢?简单的说就是使用其中的一些方法将Javabean转换成json数据格式。
1.项目中json所使用的jar包
- commons-beanutils-1.8.3.jar
- commons-collections-3.2.1.jar
- commons-lang-2.5.jar
- commons-logging-1.1.1.jar
- ezmorph-1.0.6.jar
- json-lib-2.4-jdk15.jar
- xom-1.1.jar
这里的jar包作为学习已经够用,就不在列出其他jar包
2.工具中的核心类介绍
JSONObject 类:该类继承了Map类,其实质就是操作Map
1).toString():该方法将map对象转换成json对象,并转换成字符串类型
2).fromObject(object):这个方法将Javabean对象转换成json对象,参数object对象是实例对象。
JSONArray类:该类则继承了List类
1).toString():该方法将List对象转换成json对象,并转换成字符串类型
2).fromObject(list):该方法将list转换成json对象
3.代码实例
public void test01() {
JSONObject map = new JSONObject();
map.put("name", "ZhangSan");
map.put("age", 18);
map.put("sex", "famle");
String s = map.toString(); //使用map的toString()方法,直接将json对象转换成字符串
System.out.println(s);
/**
* 结果:
* {"name":"ZhangSan","age":18,"sex":"famle"}
*/
}
@Test
public void test02() {
Person p = new Person("zhangSan",23,"male");
JSONObject map = JSONObject.fromObject(p); //这个方法可以直接将javab对象转换成json对象
System.out.println(map.toString());
/**
* 结果:
* {"age":23,"name":"zhangSan","sex":"male"}
*/
}
@Test
public void test03() {
Person p1 = new Person("zhangSan",23,"famale");
Person p2 = new Person("liSi",24,"male");
JSONArray arr = new JSONArray();
arr.add(p1);
arr.add(p2);
System.out.println(arr.toString());
/**
* 结果:
* [{"age":23,"name":"zhangSan","sex":"famale"},
* {"age":24,"name":"liSi","sex":"male"}]
*/
}
@Test
public void test04() {
Person p1 = new Person("zhangSan",23,"famale");
Person p2 = new Person("liSi",24,"male");
List<Person> listPerson = new ArrayList<Person>();
listPerson.add(p1);
listPerson.add(p2);
System.out.println(JSONArray.fromObject(listPerson));
/**
* 结果:
* [{"age":23,"name":"zhangSan","sex":"famale"},
* {"age":24,"name":"liSi","sex":"male"}]
*/
}