Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×
👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
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-12-05.

— Добавлено склеивание xml, json и yaml файлов

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

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

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

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

— Добавлена поддержка 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 автоматично може згенерувати для всіх полів структури, але для вкладених стуктур треба буде додатково проходитись по кожній структурі

Можно написать отдельное приложение с таким преобразователем.

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

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

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

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

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

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

Список ключей:

java -jar 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

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

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

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

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

Коментар порушує правила спільноти і видалений модераторами.

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

Но не всё из XML ты можешь в 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.

Кстати вот как выглядит json2xml конвертор в С++:

github.com/...​edoong/xml2json/issues/14

:)

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

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

О каких файлах идет речь? Для запуска 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% случаев.

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

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

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

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

Появилась вэб версия программы.

javadev.github.io/xml-to-json

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