528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
Java JSON Parser29.06.2019, 00:12. Показов 2315. Ответов 7
Всем привет, я мало знаком с работой и преобразованием JSON, и буду признателен если подскажете, исправите код, короче заполните пробелы знаний.
Я начал знакомится с Gson и Jackson, и немного запутался, потому очень надеюсь что XML парсинги мало востребованы и мне еще е его/их не придется осваивать(по крайней мере для начала). Jackson один пример я уже краем глаза просматривал пол года назад, там было с аннотацией над полями сущности, а значит я не понимал механизм и + это было в ущерб универсальности (могут попастся POJO/сущности извне). XML пока откину (читал что он вроде медленный). Итак Gson или Jackson, что лучше, в чем отличия? На счет JSON, насколько я понял, это файл хранящий конкретную инстанс, и то что он у меня всего невсего строчка, например
Я начал с Gson, и он мне пока больше понравился. Насколько я понял, то и там и там не маленькая библиотека (типа деревьев и нодов), но главные инструменты это преобразование 3-х типов : Строка, Объект, и Json файл. Gson гнавное что делает это преобразовывает строку в объект(и наоборот), и это строка похожа на json формат а не на toString(), а дальше мы уже сами руками записываем ее в нужный файл (у меня мало опыта работы с файлами, возможно неоптимизировано, поправте если что). А вот Jackson работает иначе (его конвертер я полностью не доделал) он преобзовывает объект в json формат, и как аргумент принимает класс. А еще он как-то сложно преобразовывает json формат в строку (через Object) так что приходится работать с toString(), вот по этому считаю пока что он хуже. Но, что интересно, над той же самой сущностью что и Gson, Jackson дает другой результат json формата, появляется новый параметр, что для меня очень странно
Кликните здесь для просмотра всего текста
Вот сами конверторы, и спасибо за правильное направление и разъяснения что, как, почему, применяется и проч. Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
0
|
29.06.2019, 00:12 | |
Ответы с готовыми решениями:
7
Парсинг JSON в JSON Linked Data с использованием Hydra Java Json parser JSON Parser IllegalStateException Java, JSON и JSON Simple. Непонятка с созданием объекта JSON на сервере для отправки на фронт |
korvin_
|
29.06.2019, 00:57
#2
|
Не по теме: Любишь овсянку? Или манку?
0
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
29.06.2019, 08:28 [ТС] | 3 |
korvin_, То есть по сути функции у них одинаковые, а в реальных проектах никто не заморачиапется - бери что нравится, и в 99% случаев преобразовываем между строкой, объектом, json-фалом (функционала больше не используем)? на XML можно забить а json никто в редакторе не открывает, так что если там только одна гигантская накрасиво-выглядящая строка никого это не волнует?
Если все так как выше я предположил, то эта тема хорошо для меня складывается, основы знаю, код хоть и не идеальный но рабочий, сохраню его на будущее (из-за неприменения чего-то, я это быстро забываю)?!
0
|
4539 / 2732 / 486
Регистрация: 28.04.2012
Сообщений: 8,630
|
|
29.06.2019, 12:00 | 4 |
Ну, по большому счёту да, но я вопрос задал к тому, что что за каша у тебя в коде?
Добавлено через 45 секунд Лучше удали его на будущее.
1
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
29.06.2019, 13:13 [ТС] | 5 |
Касательно GsonConvert "На безрыбъе и рак рыба" а на остальное я вообще забиваю, важным для меня получается только Gson. Находил примеры либо слишком упрощенные, либо на что-то заточеные.
Но мне кажется что код логичен и интиитивно понятен. Есть 3 "формата" строка, объект, и json-файл - соответственно должно быть 6 преобзарований (объект -> строка, не рассматриваю, он всегда есть, значит осталось 5), названия тоже не стал давать с "from", оставил только "to" чтобы не запутаться, + оставил возможность как записывать в новый json-файл так и "перезаписывать" в файл что есть по умолчанию. Мне кажется что это может быть полезно. Ну если вы или кто ни будь другой поможет/подскажет с кодом, то ясное дело я его удалю, а так это лучшее из имеющегося.
0
|
4539 / 2732 / 486
Регистрация: 28.04.2012
Сообщений: 8,630
|
|
29.06.2019, 13:59 | 6 |
Нет.
Нет такого формата «JSON-файл». Нет. Чтение/запись файлов тут вообще ортогональна и не к месту. Ты же смешал всё в адовую кучу.
0
|
4539 / 2732 / 486
Регистрация: 28.04.2012
Сообщений: 8,630
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
29.06.2019, 21:04 | 7 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сообщение было отмечено ViktorFX как решение
Решение
Ну например…
Кликните здесь для просмотра всего текста
Добавлено через 3 минуты И модель:
Кликните здесь для просмотра всего текста
Добавлено через 2 минуты => Код
20:50:38: Executing task 'Demo.main()'... > Task :compileJava > Task :processResources NO-SOURCE > Task :classes > Task :Demo.main() Jackson value: John Smith (30) $110000 [Database, JavaEE, REST] doc: {"firstName":"John","lastName":"Smith","age":30,"salary":110000,"skills":["Database","JavaEE","REST"]} parsed: John Smith (30) $110000 [Database, JavaEE, REST] value == parsed: true writing to ``/Users/andrey/employee.json''... reading from ``/Users/andrey/employee.json''... read: John Smith (30) $110000 [Database, JavaEE, REST] value == read: true GSON value: John Smith (30) $110000 [Database, JavaEE, REST] doc: {"firstName":"John","lastName":"Smith","age":30,"salary":110000,"skills":["Database","JavaEE","REST"]} parsed: John Smith (30) $110000 [Database, JavaEE, REST] value == parsed: true writing to ``/Users/andrey/employee.json''... reading from ``/Users/andrey/employee.json''... read: John Smith (30) $110000 [Database, JavaEE, REST] value == read: true BUILD SUCCESSFUL in 0s 2 actionable tasks: 2 executed 20:50:39: Task execution finished 'Demo.main()'.
1
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
29.06.2019, 21:31 [ТС] | 8 |
korvin_, Огромное спасибо. Выглядит просто внушительно!
0
|
29.06.2019, 21:31 | |
29.06.2019, 21:31 | |
Помогаю со студенческими работами здесь
8
Json Parser json parser JSON.parser Parser JSON Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |