Это было бы здорово, так как это позволило бы моему xml-материалу читать json без каких-либо изменений, кроме другого парсера sax.
Есть ли SaxParser, который читает json и запускает события, чтобы он выглядел как xml
Ответы (3)
Если вы имели в виду синтаксический анализатор на основе событий, то есть несколько проектов, которые делают это:
- #P2# <блочная цитата> #P3# #P4# блочная цитата>
- #P5# <блочная цитата> #P6# #P7# блочная цитата>
Я думаю, что это плохая идея - пытаться рассматривать JSON, как если бы это был XML (это то, о чем вы, по сути, спрашиваете); однако Jettison делает именно это. Он предоставляет содержимое JSON через Stax API (javax.xml.stream). И если вы действительно хотите SAX, написать оболочку из Stax в SAX также тривиально (но не наоборот).
Я также думаю, что вы могли бы получить лучшие ответы, если бы объяснили немного больше, чего вы пытаетесь достичь, помимо механизмов, которые вы надеетесь использовать. Например, существует множество инструментов привязки данных как для XML, так и для JSON; и использование таких инструментов может скрыть детали более низкого уровня намного лучше, чем использование абстракции, предназначенной для обработки одного для другого.
<string>
, <number>
или <array>
по мере его ввода), которые не должны иметь ни естественные JSON, ни естественные XML-представления логического содержимого . Это именно то, что называется franken-JSON (при переходе от xml к json); в этом все наоборот. Существует много таких сопоставлений, все они громоздки и неестественны в использовании, но если требуется преобразование любого и всего контента без потерь, необходимо. Так что это хороший пример того, что я имею в виду.
- person StaxMan; 02.04.2019
Я разработал потоковый преобразователь на основе StAX: https://github.com/AtomGraph/JSON2XML
Он считывает любые данные JSON и создает XML-представление JSON, указанное в XSLT 3.0. .
JSON2XML позволяет преобразовывать JSON с помощью XSLT даже без процессора XSLT 3.0. Вы можете просто предварительно обработать данные, используя JSON2XML перед преобразованием, и передать их, например, в таблицу стилей XSLT 2.0. Таким образом, ваша таблица стилей остается совместимой с XSLT 3.0, поскольку XML-представление точно такое же.
Обратная связь и пулл-реквесты приветствуются.