在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;

不说其他,直接上干货

jsonobject转对象_将对象转为jsonobject_jsonobject转list对象

上面是一个完整的测试代码过程

讲一下原理:

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