Convert XML to JSON format

后端 未结 10 884
粉色の甜心
粉色の甜心 2020-12-13 07:43

I have to convert docx file format (which is in openXML format) into JSON format. I need some guidelines to do it. Thanks in advance.

10条回答
  •  清歌不尽
    2020-12-13 08:07

    If you are dissatisfied with the various implementations, try rolling your own. Here is some code I wrote this afternoon to get you started. It works with net.sf.json and apache common-lang:

    static public JSONObject readToJSON(InputStream stream) throws Exception {
        SAXParserFactory factory = SAXParserFactory.newInstance();
        factory.setNamespaceAware(true);
        SAXParser parser = factory.newSAXParser();
        SAXJsonParser handler = new SAXJsonParser();
        parser.parse(stream, handler);
        return handler.getJson();
    }
    

    And the SAXJsonParser implementation:

    package xml2json;
    
    import net.sf.json.*;
    import org.apache.commons.lang.StringUtils;
    import org.xml.sax.*;
    import org.xml.sax.helpers.DefaultHandler;
    import java.util.ArrayList;
    import java.util.List;
    
    public class SAXJsonParser extends DefaultHandler {
    
        static final String TEXTKEY = "_text";
    
        JSONObject result;
        List stack;
    
        public SAXJsonParser(){}
        public JSONObject getJson(){return result;}
        public String attributeName(String name){return "@"+name;}
    
        public void startDocument () throws SAXException {
            stack = new ArrayList();
            stack.add(0,new JSONObject());
        }
        public void endDocument () throws SAXException {result = stack.remove(0);}
        public void startElement (String uri, String localName,String qName, Attributes attributes) throws SAXException {
            JSONObject work = new JSONObject();
            for (int ix=0;ix
                                                            
提交回复
热议问题