2014-12-08 1 views
3

Я пытаюсь преобразовать строку xml в Json в Java. Вот пример кода:Преобразование XML в JSON с использованием org.apache.commons.json.utils.XML toJson - Изменяет пустой элемент на "true"

import org.apache.commons.json.utils.XML; 

String test = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><a><b>val1</b><d/></a>"; 
InputStream is = new ByteArrayInputStream(test.getBytes()); 
String jsonString = XML.toJson(is); 

В результате:

{ "а": { "Ъ": "знач1", "г": истинно}}

Я не понимаю, почему значение d's установлено в true?

также есть ли способ, чтобы получить этот результат:

{ "а": { "Ъ": "знач1", "d": ""}}

+0

Не могли бы вы предоставить ссылку на библиотеку, которую используете? –

+0

Надеюсь, что это поможет: https://wink.apache.org/documentation/1.1.2/api/org/apache/wink/json4j/utils/XML.html – Ali

+0

Спасибо, я не знал этого. –

ответ

1

я сделал небольшое исследование, метод org.apache.apache.wink.json4j.utils.XML.toJson использует SAXParser, я не мог отлаживать (он предупреждал меня из-за отсутствия атрибутов номера строки (это из-за декомпилятора?), в любом случае) it , но я думаю, что это верно для пустого тега.

Затем я отладил apache.sling.commons.xml.XML.toJSONObject, у которого есть собственный XMLTokenizer. По моей оценке из-за пустой теги SAXParser.

 Смежные вопросы

  • Нет связанных вопросов^_^