黑马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,集合(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());
	}
}

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

时间: 2024-08-06 00:43:02

黑马day17 xstream生成xml数据&json-lib生成json数据的相关文章

黑马day17 json格式的数据

JSON格式: * 介绍: - JavaScript Object Notation缩写 - 定义:是一种轻量级的数据交换格式. * 特点: - 易于程序员阅读和编写. - 易于计算机解析和生成. * 其实是javascript的子集:原生javascript支持JSON * 注意:JSON和XML对于我们的意义 - XML:是我们开发主流的数据格式 - JSON:是互联网开发主流的数据格式,是我们将来可能主流的数据格式 * 结构: * "key/value"格式:类似于Map集合 *

XStream解析xml和json

XStream是一个在我看来比较好的一个第三方包了.因为它在解析时支持注解.这样很是方便,并且xml跟json这两种格式的文件都能进行解析,XStream本属于java的一个第三方包,甚是好用,若是拿它在android开发环境,也是能正常解析,但有点美中不足,因为android开发环境时,XStream不太支持json转对象,只支持对象转json,其他xml与对象的互转都支持.这样的话双解析就有了那么一点瑕疵之处,不过话说回来,没多少需求的数据交互会用json跟xml切来切去的,当只是json转

java将XML文档转换成json格式数据

功能 将xml文档转换成json格式数据 说明 依赖包: 1. jdom-2.0.2.jar : xml解析工具包; 2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包 程序源码 package com.xxx.open.pay.util; import com.alibaba.fastjson.JSONObject; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdo

php编写app接口(二)-PHP生成XML数据

在Reponse.php文件中添加方法xml(): public static function xml(){ header('Content-type: text/xml'); $xml = "<?xml version='1.0' encoding = 'UTF-8'?>\n"; $xml .="<root>\n"; $xml .="<code>200</code>\n"; $xml .=&qu

跨平台支持的WebService接口Demo,利用xstream快速解析和生成xml文件

原文:跨平台支持的WebService接口Demo,利用xstream快速解析和生成xml文件 源代码下载地址:http://www.zuidaima.com/share/1591110000167936.htm 这个是我本人写的CXF的WebService的一个正在项目中使用的程序, 支持跨平台,经测试,java和C#客户端能正常使用,其中利用Xstream生成和解析xml,不需要修改对象;支持内部私有字段,直接根据生成java类生成xml,反过来根据xml生成java类. 运行说明: 部署到

JSP动态生成XML、json例子

动态生成Xml例子 jsp文件: <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2"> <jsp:directive.page import="java.text.*" /> <jsp:directive.page import="java.lang.*" /> <jsp:directive.page con

数据存储-自定义Json串写入文件与XML格式读取数据

数据存储总的来说有三种方式 1>,数据库 2>,文件 3>,网络 在这里我介绍的是Json格式与XML格式的文件存储 先说说常用的文件存储数据的格式 1>,Json格式 2>,XML格式 这俩种格式我觉得区别的话应该是Json适合存储小数据,XML适合存储大数据 在cocos2d-x中,如果我们要用Json首先我们要先导入一个Json库:libjson demo如下: 要添加libjson头文件 创建Json格式的数据: 这里用JSONNode,定义一个父节点n,再定义一个节

Android学习之XML数据的三种解析方式以及生成XML文件

首先,我得声明,本博客的思想主要参考了此博客:http://blog.csdn.net/liuhe688/article/details/6415593 不过代码我自己一句句敲的 好了,首先讲一下解析XML的三种方式:(恕我粘贴一下哈) SAX解析器: SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的.当事件源产生事件后,调用事件处理器相应的处理方法,一个事件就可以得到处理.在事件源调用事件处理器中特定方

XStream实现xml和java对象之间的互相转换,同理JSON也可以

首先去官网下载响应JAR包 http://xstream.codehaus.org/index.html 最少需要两个jar包,一个xstream.jar,一个是xmlpull.jar 首先来看下java对象到xml的转换 package xml; class PhoneNumber { private int code; private int number; public int getCode() { return code; } public void setCode(int code)