利用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;}}