论坛首页 入门技术论坛

两行核心代码轻松搞定XML和对象间相互转换. XStream 简单示例.

浏览 9498 次
该帖已经被评为新手帖
作者 正文
   发表时间:2011-09-11  
freezing 写道
obullxl 写道
witcheryne 写道
woshicaiqiang 写道
jorneyR 写道
我看到的是很多行代码,不是两行

+1

这贴纯属标题党...

+1

+1

+1
0 请登录后投票
   发表时间:2011-09-11  
哈哈 标准的标题党
0 请登录后投票
   发表时间:2011-09-12  
Xstream弄XML还行,弄JSON还是别用它的好。
0 请登录后投票
   发表时间:2011-09-12  
jaxb或者castor,楼主难道一个都没有用过
0 请登录后投票
   发表时间:2011-09-12  
想骂你,又忍住了
0 请登录后投票
   发表时间:2011-09-12  
freezing 写道
obullxl 写道
witcheryne 写道
woshicaiqiang 写道
jorneyR 写道
我看到的是很多行代码,不是两行

+1

这贴纯属标题党...

+1

+1

+1
0 请登录后投票
   发表时间:2011-09-12  
wangdf_jee 写道
想骂你,又忍住了

哈哈 
0 请登录后投票
   发表时间:2011-09-13  
标题党。。。。。。.................
0 请登录后投票
   发表时间:2011-09-13  
这里提供一种最原始的实现方法,没有使用第三方库。
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

public class XmlUtils {
	public static String objectToXml(Class<?> clazz, Object object)
			throws Exception {
		JAXBContext context = JAXBContext.newInstance(clazz);
		Marshaller marshaller = context.createMarshaller();
		StringWriter stringWriter = new StringWriter();
		marshaller.marshal(object, stringWriter);

		return stringWriter.toString();
	}

	public static Object xmlToObject(Class<?> clazz, String xml) throws Exception {
		JAXBContext context = JAXBContext.newInstance(clazz);
		Unmarshaller unmarshaller = context.createUnmarshaller();
		
		return unmarshaller.unmarshal(toInputStream(xml, "utf-8"));
	}

	private static InputStream toInputStream(String input, String encoding)
			throws IOException {
		byte[] bytes = (encoding != null) ? input.getBytes(encoding) : input
				.getBytes();
		return new ByteArrayInputStream(bytes);
	}
}
0 请登录后投票
   发表时间:2011-09-13  
C# xml serilization的丑陋版
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics