将json格式化字符串转换成xml格式,例如
怎么实现呢?经过度娘知道这里需要用到两个类: ObjectMapper、XStream
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
注意要添加get set方法
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);
XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder()));
System.out.println(xStream.toXML(resultInfo));
这里已经实现了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("");
buff.append("\r\n"+xStream.toXML(resultInfo));
System.out.println(buff);
控制台打印:
其他的问题遇到了再记录吧.