json转xml(附案例)

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

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

1.添加maven依赖

ObjectMapper依赖:

<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-jaxrs</artifactId>
            <version>1.9.11</version>
        </dependency>

XStream依赖:

        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.4.10</version>
        </dependency>

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


注意要添加get set方法


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转换,但是输出发现不是我们想要的格式,别急,我整理了一下我遇到的问题:

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

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

输出:


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

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

输出:


3.添加xml消息头

可以使用Stringbuffer进行拼接:

StringBuffer buff=new StringBuffer();

buff.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");

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

System.out.println(buff);

控制台打印:


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

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页