JavaScript fwdays conf: Node.js, Performance, Tests, Nuxt.js, DevTools, GraphQL | March 14
×Закрыть
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Недавно была выпущена новая версия программы 2020-01-05.

— Добавлена поддержка yaml.
— Изменился внешний вид программы.

Скачать её можно тут:

github.com/...​wnload/test/xmltojson.exe
github.com/...​wnload/test/xmltojson.jar

С уважением, Валентин

:( Не смог понять где какие ключи нужно использовать. Да вообще их не нашел, кроме части их описанных в комментах.

А как можно его в консол линукс запустить? xml to json

java -jar xmltojson.jar

должен работать в linux.

нормчик, интересный пет проект

Недавно была выпущена новая версия программы 9.0

— Добавлена подсветка синтаксиса.
— Добавлена поддержка doctype.

Скачать его можно тут:

github.com/...​wnload/test/xmltojson.exe
github.com/...​wnload/test/xmltojson.jar

С уважением, Валентин

Недавно была выпущена новая версия конвертатора 4.0 Release.

— Добавлен параметр коммандной строки —wa для конвертирования xml в json без атрибутов.
— Добавлен параметр коммандной строки —wn для конвертирования xml в json без namespace.

Скачать его можно тут:

github.com/...​wnload/test/xmltojson.exe
github.com/...​wnload/test/xmltojson.jar

С уважением, Валентин

Недавно была выпущена новая версия конвертора 3.0.

— Добавлена поддержка маски файлов all
— Убрана панель с сообщениями об ошибках

Пример форматирования xml и json файлов из командной строки:

xmltojson.exe —s . —mode format —mask all —f tabs

Скачать его можно тут:

github.com/...​wnload/test/xmltojson.exe
github.com/...​wnload/test/xmltojson.jar

Или web версия: javadev.github.io/xml-to-json

С уважением, Валентин

Недавно была выпущена новая версия конвертора 2.0.

— исправлен порядок атрибутов при чтении xml файла.
— добавлена минимизация файла с программой.

Скачать его можно тут:

github.com/...​wnload/test/xmltojson.exe
github.com/...​wnload/test/xmltojson.jar

С уважением, Валентин

Тестирование успешно завершено. Выпущена финальная версия программы.

Всем спасибо за поддержку!

С уважением, Валентин

Спасибо за совет, задал вопрос на Стековерфлоу.

Жаба? В таком случае и XSLT хватило бы.
Но не всё из XML ты можешь в JSON сконвертить.

Но не всё из XML ты можешь в JSON сконвертить.

Сможете найти xml, который бы не сконвертировался?

Делать мне больше нечего. Почитай доку про XML и JSON и нгайди в чем разница.
Ну и сходу — комменты потеряешь. А также разницу между атрибутами и значениями тегов (ну или сочинишь уродливый вариант JSON, где будет это дополнительно хранить).
JSON в XML всегда можно, наоборот нет.

Я пока считаю что xml в json всегда можно а наоборот нет.

Фантазии они такие. Самое веселое, когда они противоречат реальности.

ой пустая болтовня, все хмл можно без потери

Нашёл ошибку в конверторе.

Неправильно конвертируется json в xml:

{
            "custom-attributes": {
              "custom-attribute": [
                {
                  "-attribute-id": "EAN",
                  "#text": "667974707467"
                },
                {
                  "-attribute-id": "HellmannImageUrl",
                  "#text": "https:\/\/sits-pod38.demandware.net\/dw\/image\/v2\/AAZW_PRD\/on\/demandware.static\/-\/Sites-footjoy-emea-master\/default\/dw34fed7a2\/FJ_92293_01.jpg?sw=650&sh=650&sm=fit&sfrm=jpg"
                },
                {
                  "-attribute-id": "proratedPrice",
                  "#text": "60.0"
                },
                {
                  "-attribute-id": "stock-class",
                  "#text": "HWL"
                }
              ]
            }
}

Это не однострочная программа и не на перле.

Мне не нужно исправлять программу. Мне нужно протестировать работу программы.

а зачем? и почему не на плюсах?

Как одно из преминений хранить все данные только в одном формате и по требованию конвертировать в другой на лету. Можно переделать на плюсы или js.

А что даст тестирование на чужом компе? Вы же можете так же само у себя протестить

Я проверил свои файлы. Может у кого есть другие, которых у меня нет.

О каких файлах идет речь? Для запуска Java приложения нужен только jar-файл, который вы у себя и можете запустить

Файлы для тестирования — Xml, json.

И каков критерий? Вы хотите протестировать на всех файлах во вселенной? Как Чак Норрис?
Вообще-то, для таких вещей используют нечто типа QuickCheck — генерируя рандомно различные комбинации контента.

Хорошая идея — генерировать файлы для теста.

Он биткоины будет у вас майнить же :)

Нет, это простое java/swing приложение.

Без блокчейна? Никто сегодня уже не пишет даже простое приложение без блокчейна.

Помогите её протестировать пожалуйста.

Допомогти написати тести чи шо?

Ручное тестирование нужно. Тесты сам добавлю.

У кого-то получилось программу запустить?

Стремно запускать непонятный jar у себя на компе ;)

И не должно было быть майнера. Протестируйте конвертор пожалуйста.

А если серьезно: я вообще не представляю как должна работать конвертация из xml в json. В xml есть намного больше сущностей чем можно представить в json.

Как пример, есть Apple PropertyList: www.apple.com/...​DTDs/PropertyList-1.0.dtd который используется повсеместно в OSX/iOS. Plist элементарно превращается в json, так как там одинаковые типы.

Никто кроме вас не знает как должен выглядеть «правильный» xml или правильный json документ. Более того, то что вы просите («протестируйте у себя») лишено смысла — я не знаю что я вообще должен ожидать.

Ваши тесты (github.com/...​ash/StringTest.java#L1381 например) сложно читать. Больше похоже на e2e тесты где вы проверяете библиотеку как блекбокс. Пишите проще, разделяйте на фрагменты. Тесты должны быть легко читабельны и понятны, я не должен угадывать ваши «-это-аттрибут» поля зарытые в строке.

Спасибо за комментарий. Буду добавлять новые юнит тесты для конвертора.

А в чем сложность такой конвертации? Представим себе, что у вас есть REST-сервис, отдающий данные наружу. Причем он должен отдавать как в XML, так и в JSON формате. Раз одни и те же данные можно представить в разных форматах, значит и конвертацию можно сделать

Сервисы сервисами, а мы говорили про общий случай, нет? В общем случае xml структурно сложнее чем json и xml нельзя представить в виде json не используя каких-то соглашений (как ОР например делает с json-полями начинающимися с `-` для xml атрибутов). Автоматическия конвертация абстрактного xml в json не работает.

Из json в xml проще. Все что можно представить в json можно представить и в xml. Но как? Теги? Атрибуты? Как разворачивать поля, массивы? Все это, опять же, набор соглашений который будет зависеть от проекта к проекту.

TL;DR: если вам надо json<->xml, напишите для своего языка аналог dictToXML и dictFromXML, дальше автоматическая сериализация уже будет работать.

легко превращается без спец соглашений, камон
на каждый элемент создаешь массив и все дела, а атрибуты — это поля в массиве

Все что можно представить в json можно представить и в xml.

Не понятного как представлять карту с ключами в которых есть пробелы. Не понятно как встраивать emoji в xml.

Автоматическия конвертация абстрактного xml в json не работает.

Не согласен. Работает в 100% случаев.

Достаточно генератора нужного тебе формата.

plist это не xml, к чему оно тут

Я буквально дал ссылку на XML DTD для plist. Что значит — это не xml?..

да согласен не то посмотрел

Исходный текст программы-конвертора:

gist.github.com/...​1d1d96bdce38800230ce687b7

С уважением, Валентин

Подписаться на комментарии