json转xml(附案例)

将json格式化字符串转换成xml格式,例如

json转xml(附案例)_第1张图片

怎么实现呢?经过度娘知道这里需要用到两个类: ObjectMapper、XStream

1.添加maven依赖

ObjectMapper依赖:


            com.fasterxml.jackson.core
            jackson-databind
            2.4.1
        
        
            org.codehaus.jackson
            jackson-jaxrs
            1.9.11
        

XStream依赖:

        
            com.thoughtworks.xstream
            xstream
            1.4.10
        

2.创建json对应的javabean对象:

json转xml(附案例)_第2张图片

注意要添加get set方法

json转xml(附案例)_第3张图片

3.利用ObjectMapper类将json封装javabean对象中

String json="{\"message\": \"用户信息获取成功\",\"code\": \"1000\",\"data\": [{\"user_id\": \"454645646456\",\"username\": \"月忆秋思\",\"xfbUserType\":0,\"realname\":\"沈万三\",\"telephone\":\"99944454564\",\"tel400\":\"4765132345\",\"sex\":1,\"city\":\"city\",\"projname\":\"海上传奇\",\"newcode\":\"2313145646546\"}]}";

ObjectMapper mapper = new ObjectMapper();

PassportNamesRes resultInfo = mapper.readValue(json, PassportNamesRes.class);

4.将javabean对象转成xml

XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder()));

System.out.println(xStream.toXML(resultInfo));

5.输出:

json转xml(附案例)_第4张图片

这里已经实现了json到xml转换,但是输出发现不是我们想要的格式,别急,我整理了一下我遇到的问题:

1.将最外层根节点替换成 root:

xStream.alias("root", resultInfo.getClass());

输出:

json转xml(附案例)_第5张图片

2.将list中子节点名字替换成one:

xStream.alias("one", passortInfo.class);

输出:

json转xml(附案例)_第6张图片

3.添加xml消息头

可以使用Stringbuffer进行拼接:

StringBuffer buff=new StringBuffer();

buff.append("");

buff.append("\r\n"+xStream.toXML(resultInfo));

System.out.println(buff);

控制台打印:

json转xml(附案例)_第7张图片

其他的问题遇到了再记录吧.

你可能感兴趣的:(json转xml(附案例))