TGViewer
Golang Дайджест Golang Дайджест @golang_digest · 13.4K subscribers
Post #330 6.92K
Пишем JSON-парсер с нуля на Go

https://sushantdhiman.dev/lets-write-a-json-parser-from-scratch/

Sushant Dhiman разбирает, как написать JSON-парсер с нуля — от токенизации до AST.

Статья небольшая, но хорошо структурированная. Два основных этапа:

Токенизатор — проходит по строке посимвольно и разбивает её на токены: {, "key", :, 123 и т.д. Отдельно обрабатываются строки (с учётом экранирования), числа, литералы true, false, null.

Парсер — принимает токены и строит AST. Каждый узел — отдельный тип (StringNode, ObjectNode, ArrayNode и т.д.), всё через рекурсивный parseValue.

В конце задачка: попробуй преобразовать AST в нативные Go-структуры и использовать их. Неплохо для закрепления.

————

Традиционно люблю статьи «напиши X с нуля» — они хорошо прокачивают понимание внутреннего устройства привычных инструментов. Джэйсоны мы гоняем каждый день, даже не задумываясь что там внутри, а внутри всё хитро и интересно 👍

Код несложный, читается легко, исходники на GitHub.

#article #diy #parsing #ast
  • 🔥 25
  • 👍 10
  • ❤ 5
More from @golang_digest
  1. Sep 16, 2026Post #363
  2. Sep 15, 2026Дописал самый большой кусок статьи про Go 1.27 — раздел про постквантовые подписи. В 1.27…
  3. Sep 13, 2026Post #361
  4. Sep 13, 2026Post #360
  5. Aug 27, 2026😐 Ультимативный разбор... Go 1.27? Честно, не знаю зачем я это сделал, но я сделал.. Ну п…
  6. Aug 19, 2026Вышел Go 1.27 https://go.dev/doc/go1.27 Подробный интерактивный разбор ещё готовлю, подкас…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →