První nástřel – trochu už to funguje, převádí JSON na XML.
1 package cz.frantovo.alt2xml;
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStreamReader;
6 import java.util.logging.Level;
7 import java.util.logging.Logger;
8 import org.json.simple.parser.JSONParser;
9 import org.json.simple.parser.ParseException;
10 import org.xml.sax.ContentHandler;
11 import org.xml.sax.DTDHandler;
12 import org.xml.sax.EntityResolver;
13 import org.xml.sax.ErrorHandler;
14 import org.xml.sax.InputSource;
15 import org.xml.sax.SAXException;
16 import org.xml.sax.SAXNotRecognizedException;
17 import org.xml.sax.SAXNotSupportedException;
18 import org.xml.sax.XMLReader;
24 public class SuperReader implements XMLReader {
26 private static final Logger log = Logger.getLogger(SuperReader.class.getName());
27 private ContentHandler contentHandler;
30 public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
32 log.log(Level.FINE, "getFeature: {0}", name);
37 public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException {
39 log.log(Level.FINE, "setFeature: {0} = {1}", new Object[]{name, value});
43 public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
45 log.log(Level.FINE, "getProperty: {0}", name);
50 public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException {
52 log.log(Level.FINE, "setProperty: {0} = {1}", new Object[]{name, value});
56 public void setEntityResolver(EntityResolver resolver) {
58 log.log(Level.FINE, "setEntityResolver: {0}", resolver);
62 public EntityResolver getEntityResolver() {
64 log.log(Level.FINE, "getEntityResolver");
69 public void setDTDHandler(DTDHandler handler) {
71 log.log(Level.FINE, "setDTDHandler: {0}", handler);
75 public DTDHandler getDTDHandler() {
77 log.log(Level.FINE, "getDTDHandler");
82 public void setContentHandler(ContentHandler handler) {
84 contentHandler = handler;
88 public ContentHandler getContentHandler() {
90 return contentHandler;
94 public void setErrorHandler(ErrorHandler handler) {
96 log.log(Level.FINE, "setErrorHandler: {0}", handler);
100 public ErrorHandler getErrorHandler() {
102 log.log(Level.FINE, "getErrorHandler");
107 public void parse(InputSource input) throws IOException, SAXException {
109 * TODO: rozpornat formát vstupu a podle toho delegovat
112 JSONParser p = new JSONParser();
113 InputStreamReader vstup = new InputStreamReader(input.getByteStream());
114 JsonSimpleContentHandler handler = new JsonSimpleContentHandler(contentHandler);
117 p.parse(vstup, handler);
118 } catch (ParseException e) {
119 throw new SAXException("Chyba při načítání JSONu", e);
124 public void parse(String systemId) throws IOException, SAXException {
126 throw new UnsupportedOperationException("Zatím není podporované.");