Есть ли инструмент для создания схемы JSON из схемы XML через Java?

Кто-нибудь знает об инструменте или подходе, с помощью которого мы можем создать схему JSON из схемы XML или схему XML из схемы JSON с помощью Java?


person Harish Raj    schedule 13.10.2011    source источник
comment
возможный дубликат Создать схему Json из схемы XML (XSD)   -  person lexicore    schedule 26.06.2015
comment
См.: stackoverflow.com/a/30006975/303810.   -  person lexicore    schedule 26.06.2015


Ответы (5)


Это не очень элегантно, но Джексон может генерировать схему json из класса Java. Таким образом, вы можете взять свою XML-схему, генерировать из него классы java с аннотациями jaxb, а затем генерировать схему json из нее, поскольку jackson поддерживает аннотации jaxb.

person sbridges    schedule 30.10.2011

Если вы можете получить POJO, соответствующие схеме (например, используя xjc), вы можете использовать Jackson для создания схемы JSON ( см. ObjectMapper.generateSchema(...)).

person StaxMan    schedule 04.11.2011

Я ожидаю, что вы сможете написать сценарий XSLT, который довольно легко генерирует структуры JSON из схемы XML. Это работает, потому что XSLT прекрасно умеет читать и преобразовывать XML, а XML-схема — это просто XML.

Идти по другому пути было бы немного сложнее. Вам нужно что-то, что может читать схему JSON и выдавать XML. Для этого вам нужен синтаксический анализатор и, вероятно, что-то, что строит AST синтаксического анализа. С этим и прогулкой по дереву вы, вероятно, сможете довольно легко сгенерировать XML-схему.

ANTLR позволит вам довольно легко определять грамматики, создавать синтаксический анализатор и AST. У него есть какой-то генератор «структурированного текста», который может работать для обхода AST.

Наш набор инструментов для реинжиниринга программного обеспечения DMS похож на ANTLR, но с большим количеством механизмов. С помощью DMS вы можете определить синтаксис JSON, построить AST, а затем написать преобразование источника в источник, чтобы сопоставить его с XML, представляющим вашу схему.

person Ira Baxter    schedule 02.11.2011
comment
схема json - это json, поэтому вам нужен только парсер json - person sbridges; 02.11.2011
comment
Первоначальный вопрос ОП заключался в том, как сгенерировать json из XML. - person Ira Baxter; 17.10.2014

например, CXF может обслуживать запросы в формате Json или XML, поэтому у него должен быть способ их преобразования.

person Peter Szanto    schedule 02.11.2011
comment
Нет, это не обязательно означает, что преобразование происходит через схемы или даже существует преобразование между XML и JSON. Вместо этого многие фреймворки создают XML и JSON отдельно, как отдельные представления. Конвертировать между POJO и JSON проще, чем между XML и JSON. - person StaxMan; 06.11.2011

Преобразование XML в JSON довольно просто и может быть выполнено различными способами:

http://answers.oreilly.com/topic/278-how-to-convert-xml-to-json-in-java
http://www.json.org/javadoc/org/json/XML.html#toJSONObject%28java.lang.String%29

Для преобразования из XML в JSON посмотрите, может быть, это очень просто:

http://www.bramstein.com/projects/xsltjson/
http://code.google.com/p/xml2json-xslt/
http://json-lib.sourceforge.net/index.html< бр/>

Существует также библиотека http://x-stream.github.io/, которая позволяет создавать преобразование в обе стороны (также в POJO). Простой пример использования вы можете найти здесь: Преобразование XML в формат JSON

/edit: упс, похоже я не правильно понял вопрос :P

person Piotr Kukielka    schedule 02.11.2011
comment
И XML в JSON также не очень ценен, потому что он имеет тенденцию создавать franken-JSON, который содержит ненужные вещи, отличные от JSON (для сохранения информации о пространстве имен XML, различия атрибутов/элементов и т. д.). Автоматическое преобразование можно рассматривать как анти-шаблон или запах кода. - person StaxMan; 06.11.2011