Преобразование XML в форматированный JSON - PullRequest
2 голосов
/ 24 января 2011

Для проекта, над которым я работаю, мне нужно преобразовать XML-документ в JSON, но при этом сохранить его удобочитаемым, хорошо выровняв данные.Хотя xml2json-xslt может создавать JSON, он не очень хорошо отформатирован.Моя главная проблема заключается в том, что это необходимо сделать в XSLT 1.0 без использования каких-либо внешних библиотек, JavaScript или чего-либо еще.Просто чистый XSLT.И хотя в Интернете много примеров, я просто не могу найти тот, который обеспечивает правильный (хорошо читаемый) формат.Для этого не нужно заниматься ракетостроением путем преобразования логических чисел, чисел, дат и т. Д. Просто нужно создать JSON, который будет использоваться другим приложением, но когда операторы смотрят на данные, им нужно делать отступы и правильно выравниватьскобки.

Ответы [ 5 ]

2 голосов
/ 24 января 2011

Самое простое решение может заключаться в том, чтобы протолкнуть вывод xml2json.xslt через форматер JSON, для которого, кажется, доступно число - у меня нет опыта ни с одним из них.

1 голос
/ 30 октября 2012

На тот случай, если кто-то другой получил такое же специальное требование (создание отступного JSON из «простого» XML с использованием XSLT 1.0), я создал версию отступа xml2json-xslt в виде сущности: https://gist.github.com/3977454

Для всех, кто в порядке с XSLT 2.0 или имеет «сложный» XML, я бы порекомендовал другой XSLT, потому что xml2json-xslt имеет некоторые недостатки: ему не хватает надлежащей обработки атрибутов, обработки нескольких элементов с одинаковымиимя и т. д. (текущая версия xml2json-xslt на момент написания: 31).

Альтернативы XSLT можно найти на github при поиске «xml2json xslt» (например, https://github.com/bramstein/xsltjson). Недостаток:что большинство из них не поддерживают отступы, но это можно компенсировать, передавая выходные данные через форматер JSON (см., например, https://stackoverflow.com/a/5244011/490560)

1 голос
/ 26 января 2011

Я думаю, вам придется кусать пулю и настраивать xml2json-xslt до тех пор, пока он не отступит так, как вы этого хотите.

См. Преобразование XML в простой текст - как я должен игнорировать /обрабатывать пробелы в XSLT? о том, как обрабатывать пробелы.

Не думаю, что это будет приятный процесс: (

1 голос
/ 25 января 2011

По моему опыту, XSLT особенно плохо подходит для генерации красиво отформатированных выходных данных.

Можете ли вы решить эту проблему в средстве просмотра JSON, которое используют ваши операторы?Большая часть моего JSON-взаимодействия начинается с http://jsonformatter.curiousconcept.com/ ...

Другие опции: Автономное приложение , Firefox AddOn , и т. Д.

0 голосов
/ 25 января 2011

http://james.newtonking.com/pages/json-net.aspx

Я использовал эту библиотеку только для LINQ to JSON, и она была очень чистой и простой. Я немного читал в документации о преобразовании объектов JSON в .NET на лету, и я помню, как видел там класс для JSON в XML ... посмотрите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...