Веб-версияОткрыть в Telegram

ПостПроект, который я советую каждому разработчику сделать хотя бы раз, написать свой парсер JSON, который превращает строку…

13 ноября 2025
J
Java Portal | Программирование
Проект, который я советую каждому разработчику сделать хотя бы раз, написать свой парсер JSON, который превращает строку в нативный объект языка, например словарь. Формат JSON настолько привычен, что мы просто пользуемся готовыми парсерами и редко задумываемся, как они устроены внутри. Вот основные шаги, если хочешь собрать такой парсер с нуля: Разобраться со спецификацией JSON. Написать токенайзер, который выделяет токены из строки (можно использовать Lex). Определить грамматику JSON по спецификации с помощью Yacc. Реализовать обработку ошибок, красивый вывод и указание позиции ошибки в строке. Собрать нативный объект языка — словарь, hashmap и т.д. Прогнать реализацию на тестах, чтобы убедиться в корректности. Если хочешь усложнить задачу — не используй Lex и Yacc, а напиши токенайзер и парсер полностью вручную, специально под JSON, без универсальности. Сделав такой проект, ты не только поймёшь, как работает JSON, но и: почему его парсинг считается относительно медленным и затратным как устроена стадия парсинга в любом компиляторе насколько всё это интересно, если копнуть глубже Этот проект реально прокачает твои навыки решения задач. Если решишься, то желаю удачи! 👉 Java Portal
38 · 3.4K ·

Рядом в ленте

JJava Portal | ПрограммированиеЕсли нужно внедрить сгруппированные конфигурационные параметры в классы, можно использовать аннотацию @ConfigurationProperties вместо @Value @Value обычно примеJJava Portal | ПрограммированиеРазбор логов при запуске Spring Boot Когда запускаешь Spring Boot и в консоли пролетают тонны логов - вот что это всё значит: 1. Spring Boot Banner Сначала появ
это сообщение
JJava Portal | ПрограммированиеБольшинство разработчиков пользуются всего парой Git команд. Вот еще 15, которые сэкономят вам кучу времени. git stash → Сохранить работу без коммита. Можно прыJJava Portal | ПрограммированиеПодсказка по Java: начиная с Java 9 можно использовать Stream.takeWhile() для удобного «нарезания» списков через стримы. Это простой способ взять элементы, пока
JJava Portal | ПрограммированиеJava Portal | Программирование@Java_Iibrary · канал · Технологии
11 602подписчиков1 061средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем