JSON-LIB 学习笔记
JSON –LIB 完成json字符串的自动生成
java 的 工具集 完成的功能就是对json字符串的处理
配合使用AJAX 太happy了
Android…等用的都是
{
sid:332575101
title:”擦”
content:”我擦”
}
导包
json.jar
ezmorph.jar
commons-lang.jar
commons-collections.jar
commons-beanutils.jar (主要对bean 就是对java 类的工具集 就可以把一个person对象的属性全自动赋值 )
commons-logging.jar
这些包 都在struts2 框架里 lib 里
建个test 导入Junit addlib
1转换一个对象到字符串 名值对 一想就是map
JSONObject .formObject(map).toString() 这个工具把map转成JSON字符串
/**
* {"parentId":88888,"itemId":9999,"itemText":"岳元璞"}
* 转换一个对象,到 json字符串
*/
@Test
public void testJson1(){
Map map = new HashMap();
map.put("parentId", 88888);
map.put("itemId", 9999);
map.put("itemText", "岳元璞");
String jsonStr = JSONObject.fromObject(map).toString();
System.out.println(jsonStr);
}
打印结果
{"parentId":8888,"itemText":"岳元璞","itemId":9999}
2转换成一个普通的对象
User 首先你的domain包里都有这个类
/**
* 转换一个普通Java对象
* User
* {"id":1111,"username":岳元璞,"password":1234}
*/
@Test
public void testJson2(){
User user = new User();
user.setId(1111);
user.setUsername("岳元璞");
user.setPassword("1234");
String jsonStr = JSONObject.fromObject(user).toString();
System.out.println(jsonStr);
}
{"id":1111,"username":"岳元璞","password":"1234"}
3从集合进行转换成JSON字符串
[{“id”: 1111,”userna”},{“id” : ,},{ },{ } ]
/**
* [{"id":1111,"username":"岳元璞","password":"1234"},{},{},{},{}]
*/
@Test
public void testJson3(){
List<User> userList = new ArrayList<User>();
for(int i=0;i<10;i++){
User user = new User();
user.setId(1111 + i);
user.setUsername("岳元璞" + i);
user.setPassword("1234" + i);
userList.add(user);
}
String jsonStr = JSONArray.fromObject(userList).toString();
System.out.println(jsonStr);
}
[{"id":1111,"username":"岳元璞0","password":"12340"},{"id":1112,"username":"岳元璞1","password":"12341"},{"id":1113,"username":"岳元璞2","password":"12342"},{"id":1114,"username":"岳元璞3","password":"12343"},{"id":1115,"username":"岳元璞4","password":"12344"},{"id":1116,"username":"岳元璞5","password":"12345"},{"id":1117,"username":"岳元璞6","password":"12346"},{"id":1118,"username":岳元璞7","password":"12347"},{"id":1119,"username":"岳元璞8","password":"12348"},{"id":1120,"username":"岳元璞9","password":"12349"}]
4Myeclipse Ctrl shift +f 快捷键 格式化的
多对一 先把组弄出来 确保你有Group这个类
/**
* [{"id":1111,"username":"岳元璞","password":"1234"},{},{},{},{}]
*/
@Test
public void testJson4(){
Group group = new Group();
group.setId(123);
group.setName("通信093");
Person person = new Person();
person.setId(1111);
person.setUsername("岳元璞");
person.setPassword("123");
person.setGroup(group);
String jsonStr = JSONObject.fromObject(person).toString();
System.out.println(jsonStr);
}
{"id":1111,"username":"岳元璞","group":{"id":123,"name":"通信093"},"password":"123"}
5对象嵌套
{success:true,data:{id:1111,username:”mm”}}
/**
* {success:true,data:{id:111,username:" 岳元璞"}}
*/
@Test
public void testJson5(){
Map map = new HashMap();
map.put("success", true);
Map dataMap = new HashMap();
dataMap.put("id", 111);
dataMap.put("username", "岳元璞");
map.put("data", dataMap);
String jsonStr = JSONObject.fromObject(map).toString();
System.out.println(jsonStr);