利用json-lib.jar等第三方jar包,jar包一定要导全,不要遗漏。
Province.java
package app.bean;
import java.util.List;
public class Province {
private Integer id;
private String name;
private List cities;
public Province(Integer id,String name,List cities) {
this.id = id;
this.name = name;
this.cities = cities;
}
public List getCities() {
return cities;
}
public void setCities(List cities) {
this.cities = cities;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
City.java
package app.bean;
public class City {
private Integer id;
private String name;
public City(Integer id,String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Test.java
package app.test;
import java.util.ArrayList;
import java.util.List;
import app.bean.City;
import app.bean.Province;
import app.json.JSONUtil;
public class Test {
public static void main(String[] args) {
/***************模拟查询数据库的结果********************/
City c1 = new City(1, "长春市");
City c2 = new City(2, "吉林市");
City c3 = new City(3, "松原市");
City c4 = new City(4, "四平市");
City c5 = new City(5, "通化市");
List<City> cities = new ArrayList<City>();
cities.add(c1);
cities.add(c2);
cities.add(c3);
cities.add(c4);
cities.add(c5);
Province p = new Province(1,"吉林省",cities);
/***************模拟查询数据库的结果********************/
/***************如何进行转换**************************/
String json = JSONUtil.object2json(p);
System.out.println(json);
//{"cities":[{"id":1,"name":"长春市"},{"id":2,"name":"吉林市"},{"id":3,"name":"松原市"},{"id":4,"name":"四平市"},{"id":5,"name":"通化市"}],"id":1,"name":"吉林省"}
}
}
JSONUtil.java
package app.json;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
import net.sf.json.xml.XMLSerializer;
/**
* 处理json数据格式的工具类
*
* @author 在第三方jar包基础上再次封装
* @Date 2013-3-31
* @version 1.0
*/
public class JSONUtil {
/**
* 将数组转换成String类型的JSON数据格式
*
* @param objects
* @return
*/
public static String array2json(Object[] objects){
JSONArray jsonArray = JSONArray.fromObject(objects);
return jsonArray.toString();
}
/**
* 将list集合转换成String类型的JSON数据格式
*
* @param list
* @return
*/
public static String list2json(List list){
JSONArray jsonArray = JSONArray.fromObject(list);
return jsonArray.toString();
}
/**
* 将map集合转换成String类型的JSON数据格式
*
* @param map
* @return
*/
public static String map2json(Map map){
JSONObject jsonObject = JSONObject.fromObject(map);
return jsonObject.toString();
}
/**
* 将Object对象转换成String类型的JSON数据格式
*
* @param object
* @return
*/
public static String object2json(Object object){
JSONObject jsonObject = JSONObject.fromObject(object);
return jsonObject.toString();
}
/**
* 将XML数据格式转换成String类型的JSON数据格式
*
* @param xml
* @return
*/
public static String xml2json(String xml){
JSONArray jsonArray = (JSONArray) new XMLSerializer().read(xml);
return jsonArray.toString();
}
/**
* 除去不想生成的字段(特别适合去掉级联的对象)
*
* @param excludes
* @return
*/
public static JsonConfig configJson(String[] excludes) {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);
jsonConfig.setIgnoreDefaultExcludes(true);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
return jsonConfig;
}
}