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

前端之家收集整理的这篇文章主要介绍了黑马day17 xstream生成xml数据&json-lib生成json数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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,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,cities);
		String object2json = JsonUtil.object2json(p);
		System.out.println(object2json.toString());
	}
}

猜你在找的XML相关文章