在java开发中,会常用到xml保存一下属性,我们使用的时候想要的是json,这样就需要转换一下了。
我用到的jar包,统计一下
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.naming.NoNameCoder;
import com.thoughtworks.xstream.io.xml.Xpp3Driver;
import docment.JsonXmlUtils;
不说其他,直接上干货
上面是一个完整的测试代码过程
讲一下原理:
1.首先拿到一个json,将json转换成javabean对象,再将javabean对象通过xstream转换成xml。这个没有遇到困难,直接就实现了。
如果只是转到xmljsonobject转对象,可以修改某些节点的名字,使用alias方法修改。
但是如果你还想转回json,这里如果自定义了节点名,就转不回去了,自测转不回去,可能你们有其他的方法转,我还没找到方法jsonobject转对象,找到的可以下方留言探讨。
2.将上面转换后的xml再转回json,这里会遇到一些问题。一不能直接转,如果直接转,分辨不了java对象和list的区别,原本的java会被当初list处理[ ]。所以这里要做一步中转,先将xml转成对象,最后再转成json就可以了。
//xml转java对象
public static Object xmlToObject(String xml) {
XStream xstream = new XStream();
xstream.alias("school",School.class);
School o = (School)xstream.fromXML(xml);
System.out.println(o.getMessage());
return o;
}
限时特惠:本站每日持续更新海量展厅资源,一年会员只需29.9元,全站资源免费下载
站长微信:zhanting688
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。