黑马day17 xstream生成xml数据&json-lib生成json数据

来源:互联网 发布:搜衣服的软件 编辑:程序博客网 时间:2024/06/01 11:06

1.XStream工具介绍:

这个工具即这个工具的jar包可以帮我们把JavaBean,集合(List,Set,Map)等生成xml格式的数据

jar包:

xstream-1.4.4.jar 这是核心包

xpp3_min-1.1.4c.jar 这是必须依赖的包

只要导入这两个jar包 导入到构建路径中就可以使用了..

2.json-lib介绍:

这个jar包可以帮我们把JavaBean,集合(List,Set,Map)等生成json格式的数据

jar包:

这是核心包


这是核心包的依赖包


为了方便,下面的所有案例都是在province类和city类的基础上生成的:

(1).povince类

package app.xstream;import java.util.List;public class Province {private int id;private String name;private List<City> cities;public Province(int id, String name, List<City> cities) {super();this.id = id;this.name = name;this.cities = cities;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<City> getCities() {return cities;}public void setCities(List<City> cities) {this.cities = cities;}}
(2).city类

package app.xstream;public class City {private int id;private String name;public City(int id, String string) {super();this.id = id;this.name = string;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
案例1:演示xml格式数据的生成:

xStream.useAttributeFor(Province.class, "id");这句话的意思是把id当成Province的一个属性.

xStream.alias("province", Province.class);这句话的意思是把<app.province>转化为<province>格式

package app.xstream;import java.util.ArrayList;import java.util.List;import com.thoughtworks.xstream.XStream;public class XStreamDemo {public static void main(String[] args) {City c1=new City(1, "邢台");City c2=new City(2, "唐山");City c3=new City(3, "石家庄");List<City> cities=new ArrayList<City>();cities.add(c1);cities.add(c2);cities.add(c3);Province p=new Province(1,"河北省",cities);//创建实例XStream xStream=new XStream();xStream.useAttributeFor(Province.class, "id");/xStream.useAttributeFor(Province.class, "name");xStream.useAttributeFor(City.class, "id");xStream.useAttributeFor(City.class, "name");xStream.alias("province", Province.class);xStream.alias("city", City.class);//把对象转化为xml格式String province = xStream.toXML(p);System.out.println(province);}}




案例2:演示生成json格式的数据

这里我写了一个工具类用来实现数据的转化

package app.xstream;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 金云龙 * @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;}}

================================================================================================

package app.xstream;import java.util.ArrayList;import java.util.List;public class JsonDemo {public static void main(String[] args) {City c1=new City(1, "邢台");City c2=new City(2, "唐山");City c3=new City(3, "石家庄");List<City> cities=new ArrayList<City>();cities.add(c1);cities.add(c2);cities.add(c3);Province p=new Province(1,"河北省",cities);String object2json = JsonUtil.object2json(p);System.out.println(object2json.toString());}}






0 0
原创粉丝点击