Есть ли SaxParser, который читает json и запускает события, чтобы он выглядел как xml - PullRequest
20 голосов
/ 07 декабря 2010

Это было бы здорово, так как это позволило бы моим XML-материалам считывать json без каких-либо изменений, за исключением другого синтаксического анализатора саксофона.

Ответы [ 3 ]

13 голосов
/ 07 декабря 2010

Если вы имели в виду парсер на основе событий, то есть пара проектов, которые делают это:

  1. http://code.google.com/p/json-simple/

    Stoppable SAXинтерфейс для потокового ввода текста JSON

    Этот проект перемещен в https://github.com/fangyidong/json-simple

  2. http://jackson.codehaus.org/Tutorial

    API потоковой передачи Jackson похож на Stax API

    Этот проект перемещен в https://github.com/FasterXML/jackson-core

1 голос
/ 07 декабря 2010

Я думаю, что плохая идея - пытаться трактовать JSON, как если бы это был XML (о чем вы, по сути, и спрашиваете); однако Jettison делает именно это. Он предоставляет контент JSON через API Stax (javax.xml.stream). И если вы действительно хотите SAX, написание оболочки из Stax в SAX тоже тривиально (но не наоборот).

Я также думаю, что вы могли бы получить лучшие ответы, если бы вы объяснили немного больше, чего вы пытаетесь достичь, помимо механизмов, которые вы надеетесь использовать. Например, существует множество инструментов привязки данных для XML и JSON; и использование таких инструментов могло бы скрыть детали более низкого уровня, чем использование абстракции, предназначенной для обработки одного другого.

0 голосов
/ 02 апреля 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 точно такое же.

Обратная связь и пул запросы приветствуются.

...