问题描述
我们正在使用StAXON(由于其通过StAX处理的性能)来解析json输入,该输入包含冒号(:)作为元素名称。冒号是JSON中的有效元素名称,但是在通过StAXON进行解析时,我们会收到异常(XMLStreamException)。
如果我将namespaceSeparator用作'\ 0'(例如new JsonXMLConfigBuilder().namespaceSeparator(Character.MIN_VALUE)
),则可以使用。但这只会更改名称空间分隔符。
我的问题/疑问:
- 这样做安全吗?是否有机会解决问题
- 在解析(读取/写入)JSON时是否有忽略冒号的方法?
- 除了基于XML的StAX解析之类的事件之外,StAXON还可以使用其他方法来解析JSON。
示例输入:{"cust:person":{"name":"John Doe","phone":"555-1111"}}
例外
Exception in thread "main" javax.xml.stream.XMLStreamException: Unbound prefix: cust
at de.odysseus.staxon.base.AbstractXMLStreamScope.verify(AbstractXMLStreamScope.java:212)
at de.odysseus.staxon.base.AbstractXMLStreamScope.setStartTagClosed(AbstractXMLStreamScope.java:234)
at de.odysseus.staxon.base.AbstractXMLStreamReader.ensureStartTagClosed(AbstractXMLStreamReader.java:191)
at de.odysseus.staxon.base.AbstractXMLStreamReader.readStartElementTag(AbstractXMLStreamReader.java:272)
at de.odysseus.staxon.json.JsonXMLStreamReader.readStartElementTag(JsonXMLStreamReader.java:93)
at de.odysseus.staxon.json.JsonXMLStreamReader.consume(JsonXMLStreamReader.java:202)
at de.odysseus.staxon.json.JsonXMLStreamReader.consume(JsonXMLStreamReader.java:153)
at de.odysseus.staxon.json.JsonXMLStreamReader.consume(JsonXMLStreamReader.java:183)
at de.odysseus.staxon.json.JsonXMLStreamReader.consume(JsonXMLStreamReader.java:153)
at de.odysseus.staxon.json.JsonXMLStreamReader.consume(JsonXMLStreamReader.java:183)
at de.odysseus.staxon.base.AbstractXMLStreamReader.initialize(AbstractXMLStreamReader.java:216)
at de.odysseus.staxon.json.JsonXMLStreamReader.initialize(JsonXMLStreamReader.java:87)
at de.odysseus.staxon.json.JsonXMLStreamReader.(JsonXMLStreamReader.java:78)
at de.odysseus.staxon.json.JsonXMLInputFactory.createXMLStreamReader(JsonXMLInputFactory.java:150)
at de.odysseus.staxon.json.JsonXMLInputFactory.createXMLStreamReader(JsonXMLInputFactory.java:45)
at JsonXml.main(JsonXml.java:27)
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)