/**
*
转换一个xml格式的字符串到json格式
*
*
@param xml
*
xml格式的字符串
*
@return 成功返回json 格式的字符串;失败反回null
*/
public
static
JSONObject xml2JSON(InputStream is) {
JSONObject
obj =
new
JSONObject();
try
{
SAXReader
sb =
new
SAXReader();
Document
doc = sb.read(is);
Element
root = doc.getRootElement();
obj.put(root.getName(),
iterateElement(root));
return
obj;
}
catch
(Exception e) {
log.error(
"传入XML后转换JSON出现错误=====
Xml2JsonUtil-->xml2JSON============>>"
,e);
return
null
;
}
}
/**
*
一个迭代方法
*
*
@param element
*
: org.jdom.Element
*
@return java.util.Map 实例
*/
@SuppressWarnings
(
"unchecked"
)
private
static
Map iterateElement(Element element) {
List
jiedian = element.elements() ;
Element
et =
null
;
Map
obj =
new
HashMap();
List
list =
null
;
for
(
int
i =
0
;
i < jiedian.size(); i++) {
list
=
new
LinkedList();
et
= (Element) jiedian.get(i);
if
(et.getTextTrim().equals(
""
))
{
if
(et.elements().size() ==
0
)
continue
;
if
(obj.containsKey(et.getName())) {
list
= (List) obj.get(et.getName());
}
list.add(iterateElement(et));
obj.put(et.getName(),
list);
}
else
{
if
(obj.containsKey(et.getName())) {
list
= (List) obj.get(et.getName());
}
list.add(et.getTextTrim());
obj.put(et.getName(),
list);
}
}
return
obj;
}