Jackson-dataformat-xml дает неожиданные результаты по сравнению с другими библиотеками

Я оцениваю инструменты для преобразования XML-строки в Json в Java.

У меня проблема с Джексоном (jackson-data-format-xml:2.8.8)

Вот мой пример XML, хранящийся в строковом значении: xmlString:

        <books>
          <book>
            <author>Robert Marin</author>
            <title>Clean code</title>                
          </book>
          <book>
            <author>Donald Knuth</author>
            <title>Concrete Mathematics</title>
          </book>
        </books>

Используя org.json:json:20140107 jar, я придумал следующий код:

XML.toJSONObject(xmlString).toString(2); 

Результат, как и ожидалось:

{
 "books": {
   "book": [
     {
      "author": "Robert Marin",
      "title": "Clean code"
     },
     {
      "author": "Donald Knuth",
      "title": "Concrete Mathematics"
     }
  ]
 }
}

Однако, когда я использую XmlMapper, предоставляемый библиотекой Джексона, выходные данные сильно отличаются (и просто неверны!):new XmlMapper().readTree(xmlString).toString() производит следующий JSON:

{"book":{"author":"Donald Knuth","title":"Concrete Mathematics"}}

Итак, мой вопрос: как мне достичь тех же результатов (с точки зрения семантики json, меня меньше волнует форматирование, отступы и т. Д.) С библиотекой Джексона?

Большое спасибо за помощь заранее

0 ответов

Другие вопросы по тегам