xml 형식 이 json 형식 으로 전 환 됨 --- XmlParse2JSon
3408 단어 자바
import com.alibaba.fastjson.JSONObject;
import org.jdom.Attribute;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* The type XmlParse2Json.
*/
public class XmlParse2Json {
public static String xml2JSON(String xml) {
JSONObject json = new JSONObject();
byte[] byteStream = null;
try {
byteStream = xml.getBytes("utf-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
InputStream is = new ByteArrayInputStream(byteStream);
SAXBuilder sb = new SAXBuilder();
org.jdom.Document doc = null;
try {
doc = sb.build(is);
} catch (JDOMException | IOException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();
json.put(root.getName(), iterateElement(root));
String jsonString = json.toJSONString();
return jsonString;
}
private static JSONObject iterateElement(Element element) {
List node = element.getChildren();
Element et = null;
JSONObject obj = new JSONObject();
// , list,
List list = null;
//
for (int i = 0; i < node.size(); i++) {
list = new LinkedList<>();
et = (Element) node.get(i);
//
if (et.getAttributes().size() > 0) {
//
List attributes = et.getAttributes();
// jsonobject
JSONObject attrvalue = new JSONObject();
// list
List attrvalues = new ArrayList<>();
for (Attribute attr : attributes) {
// jsonobject
attrvalue.put(attr.getName(), attr.getValue());
}
attrvalues.add(attrvalue);
obj.put(et.getName(), attrvalues);
}
//
if (et.getTextTrim().equals("")) {
if (et.getChildren().size() == 0)
continue;
// obj
if (obj.containsKey(et.getName())) {
// , list
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;
}
public static void main(String[] args){
String xml = "lll 1 "
+ "xxx 2 ";
String str = xml2JSON(xml);
System.out.println(str);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.