Преобразователь xml в json, yaml или csv, версия 2020-12-05
Усім привіт!
Ось програма (swing/java11):
github.com/...wnload/test/xmltojson.exe
github.com/...wnload/test/xmltojson.jar
Або веб-версія: xmltojson.github.io
Гарного вам дня!
Усім привіт!
Ось програма (swing/java11):
github.com/...wnload/test/xmltojson.exe
github.com/...wnload/test/xmltojson.jar
Або веб-версія: xmltojson.github.io
Гарного вам дня!
Недавно была выпущена новая версия программы
— Добавлено склеивание xml, json и yaml файлов
Скачать её можно тут:
github.com/...wnload/test/xmltojson.exe
github.com/...wnload/test/xmltojson.jar
С уважением, Валентин
Недавно была выпущена новая версия программы
— Добавлена поддержка csv.
Скачать её можно тут:
github.com/...wnload/test/xmltojson.exe
github.com/...wnload/test/xmltojson.jar
С уважением, Валентин
В xmltojson.exe та xmltojson.jar версіями користуються? Є статистика завантажень за останні 3 місяці?
Краще розвивати саме веб-версію: XML to JSON, і можна налаштувати так, що буде через service worker працюати offline
З альтернатив є transform.tools який має багато різноманітних конверторів
Є JSON to Go який працює в offline режимі (часто користуюсь саме цим інструментом)
Статистики нет. В планах добавить поддержку для yaml в JavaScript версии.
Прикольно конечно. А можно ещё Go-версию сделать, только в этом случае всё намного проще. В декларациях структур напротив каждого поля можно задать теги как это стримится в json и xml. Ну и всё, больше ничего делать не надо.
Вот пример:
type Item struct { Value string `json:"label" xml:",cdata"` Name string `json:"name" xml:"Name,attr"` Type string `json:"type" xml:"Type,attr"` }
Такий інструмент робиться за 4 вечори, вже готова версія XML to Go
Чи в тебе специфічна задача коли повертаєш результат в різних форматах?
Практическая целесообразность состоит в том, что можно читать транзакции в xml, потом писать в json без изменения структуры.
Тоді краще згенерувати «XML to Go», а вже далі IDE автоматично може згенерувати для всіх полів структури, але для вкладених стуктур треба буде додатково проходитись по кожній структурі
Зробив обгортку xml-to-go.github.io над github.com/miku/zek по аналогії з mholt.github.io/json-to-go та www.onlinetool.io/xmltogo
xml-to-go.github.io має опцію „with JSON tags”
Можно написать отдельное приложение с таким преобразователем.
Недавно была выпущена новая версия программы
— Добавлена поддержка yaml.
— Изменился внешний вид программы.
Скачать её можно тут:
github.com/...wnload/test/xmltojson.exe
github.com/...wnload/test/xmltojson.jar
С уважением, Валентин
:( Не смог понять где какие ключи нужно использовать. Да вообще их не нашел, кроме части их описанных в комментах.
Недавно была выпущена новая версия программы 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
С уважением, Валентин
Тестирование успешно завершено. Выпущена финальная версия программы.
Всем спасибо за поддержку!
С уважением, Валентин
Коментар порушує правила спільноти і видалений модераторами.
Но не всё из XML ты можешь в JSON сконвертить.
Сможете найти xml, который бы не сконвертировался?
Нашёл ошибку в конверторе.
Неправильно конвертируется 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-файл, который вы у себя и можете запустить
И каков критерий? Вы хотите протестировать на всех файлах во вселенной? Как Чак Норрис?
Вообще-то, для таких вещей используют нечто типа QuickCheck — генерируя рандомно различные комбинации контента.
Без блокчейна? Никто сегодня уже не пишет даже простое приложение без блокчейна.
gist.github.com/...3e33eb208326146b4a8692584 майнера внутри не оказалось, а жаль.
И не должно было быть майнера. Протестируйте конвертор пожалуйста.
А если серьезно: я вообще не представляю как должна работать конвертация из 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% случаев.
Я буквально дал ссылку на XML DTD для plist. Что значит — это не xml?..
Исходный текст программы-конвертора:
gist.github.com/...1d1d96bdce38800230ce687b7
С уважением, Валентин
Появилась вэб версия программы.
67 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів