码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-07-13 14:06:53      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:ajax

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());
	}
}

技术分享





版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:ajax

原文地址:http://blog.csdn.net/u014010769/article/details/46861041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!