利用反射机制,将实体类中的属性进行反射为json形式的数据


导入第三方jar包 (http://pan.baidu.com/s/1o88tHjG)


编写一个实体类:City.java

package com.mo.bean2json;

public class City {
private int id;
private String name;

public City(int id, String name) {
super();
this.id = id;
this.name = name;
}

}

编写测试类;

·将一个实体类转换为json数据

@Test
public void bean2json(){
City city = new City(1,"广州");
JSONArray jsonArray = JSONArray.fromObject(city);
System.out.println(jsonArray);
//[{"id":1,"name":"广州"}]
}


·将一个list转换为json数据


@Test
public void list2json(){
List<City> list = new ArrayList<City>();
list.add(new City(1,"广州"));
list.add(new City(2,"珠海"));
list.add(new City(3,"深圳"));
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);
//[{"id":1,"name":"广州"},{"id":2,"name":"珠海"},{"id":3,"name":"深圳"}]
}


·将一个存在list的bean转换为json

编写一个bean

package com.mo.bean2json;

import java.util.ArrayList;
import java.util.List;

public class Province {
private int id;
private String name;
private List<City> cityList = new ArrayList<City>();//这里的set get方法省略
}


测试类

@Test
public void beanlist2json(){
List<City> list = new ArrayList<City>();
list.add(new City(1,"广州"));
list.add(new City(2,"珠海"));
Province province = new Province(1,"广东",list);
JSONArray jsonArray = JSONArray.fromObject(province);
System.out.println(jsonArray);
/*[
{
"id":1,
"cityList":[{"id":1,"name":"广州"},{"id":2,"name":"珠海"}],
"name":"广东"
}
]*/
}



·map转json

@Test
public void map2json(){
List<City> list = new ArrayList<City>();
list.add(new City(1,"广州"));
list.add(new City(2,"珠海"));

Map<String,Object> map = new LinkedHashMap<String,Object>();
map.put("total",list.size());
map.put("rows",list);

JSONArray fromObject = JSONArray.fromObject(map);
System.out.println(fromObject);
/*[
{
"total":2,
"rows":[{"id":1,"name":"广州"},{"id":2,"name":"珠海"}]
}
]*/

//去掉外面的中括号
String jsonJAVA = fromObject.toString();
String substring = jsonJAVA.substring(1, jsonJAVA.length()-1);
System.out.println(substring);
/*{
"total":2,
"rows":[{"id":1,"name":"广州"},{"id":2,"name":"珠海"}]
}*/
}