---
title: "The Go team explains Go's new JSON API"
publication: "Go Weekly"
issue: 623
published_at: "2026-11-06"
canonical_url: "https://golangweekly.com/issues/623"
---

Plus a GC bottleneck at 192 cores, generic collections get the go-ahead, fixes for twelve CVEs next Tuesday, and Go handlers in Next.js?        

#​623 — November 6, 2026 

[Read the Web Version](https://golangweekly.com/issues/623)  

Together with [![Three Dots Labs\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_289/e_make_transparent/co_white,e_outline:17/vonzxauqd8tsxfvqseup.png)](https://threedots.tech/event-driven/?utm_source=golangweekly)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/mjufarps84eobx02hryp.jpg)](https://go.dev/blog/jsonv2)  

[The Official Guide to `encoding/json/v2` (and Migrating to It)](https://go.dev/blog/jsonv2) — Now that `encoding/json/v2` and `jsontext` are stable, the Go team has a refreshed introduction to how they work, including how v1 and v2 interoperate. There's also a new [migration guide](https://go.dev/doc/jsonv2-migration) which shows off `jsonsplit` for running v1 and v2 side by side in production and logging any differences. 

Pratt, Tsai, Martí et al. (Go Team)  

💡 [Lleg put v2 to the test](https://lleg.dev/posts/go-127-json-v2-10x-claim-1x-structs-60x-recursive/) and found nine default behavior changes, 10% faster unmarshaling on plain structs, and big perf gains for deeply recursive custom decoders.  [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/0ed978ca.png)](https://threedots.tech/event-driven/?utm_source=golangweekly) 

[What Happens to Your `go func()` When the Pod Restarts?](https://threedots.tech/event-driven/?utm_source=golangweekly) — Whatever it was doing is gone: you lose the email being sent or the webhook call. Go Event-Driven, the hands-on training from Watermill's authors, starts with goroutines and ends with Go services where data survives a restart. Don’t miss the last cohort this year that opens November 11. 

Three Dots Labs sponsor   

[How `//go:embed` Works: From Source Files to Binary](https://internals-for-interns.com/posts/how-go-embed-works/) — A guided tour of how an embedded file travels through the toolchain, with links to the Go source for each step. Along the way, we learn why `import _ "embed"` is needed, even when you never reference the package. 

Ainsley Clark   

**IN BRIEF:** 

- The [draft Go 1.28 release notes](https://tip.golang.org/doc/go1.28) now list two new `go vet` checks for unchecked `bufio.Scanner` and `sql.Rows` errors, a `FlagSet.All` iterator, `url.MustParse` and [Landlock](https://landlock.io/) support for subprocesses. The release is targeted for February 2027.
- 🔐 [Go 1.27.4 and 1.26.11](https://groups.google.com/g/golang-announce/c/mkF8JswCcxs) are due on November 10 with security fixes to the standard library and toolchain covering twelve CVEs (a lot for a minor release).
- React framework [Next.js](https://nextjs.org/) has added (in its 'canary' build) [experimental `route.go` handlers](https://github.com/vercel/next.js/pull/100130) where you can write plain `net/http`-style GET/POST funcs in a `route.go` file and Next.js will serve them as routes.
- Following last month's [accepted experiment](https://github.com/golang/go/issues/81662) for building cgo code without a C toolchain, [a CL in review](https://go.dev/cl/860181) reimplements `runtime/cgo` in Go and assembly on every remaining OS and removes the C code entirely.   

**PROPOSAL UPDATES:** 

- [`maps.Grow`](https://github.com/golang/go/issues/81698) has been accepted and may make it into Go 1.28. [Redowan Delowar explains why it's useful.](https://rednafi.com/shards/2026/11/go-maps-grow/)
- [`unicode/ascii`](https://github.com/golang/go/issues/82734), a package of ASCII-only string functions generic over strings and byte slices, has been proposed, with naming as a sticking point.
- [`runtime/bubble`](https://github.com/golang/go/issues/82785), from two Temporal engineers, would build on `testing/synctest`'s bubbles to let a host program run goroutines, channels and `select` deterministically.
- [`math/decimal`](https://github.com/golang/go/issues/82668), an arbitrary-precision decimal type with explicit rounding modes, has been proposed with an implementation already attached.   

[Go's Generic Collections Proposal Has Been Accepted](https://github.com/golang/go/issues/80590#issuecomment-6642595800) — We covered [the initial plan](https://github.com/golang/go/issues/80590) in July but now the umbrella proposal is accepted, along with `set.Set` and hash-based `Map` and `Set` types. They'll land in `golang.org/x/exp/collection` first. 

The Go Team   

[Go's GC Can Hit a Wall on 192 Cores](https://github.com/golang/go/issues/82472) — I doubt many of us work with such mammoth systems, but on 192-core amd64 hosts, heap-triggered GC cycles can take 3-4x longer as idle cores pile onto a shared lock-free stack. arm64 already has mitigations for this, and fixes are in review. 

Nate Watson et al.   

[Is Your Go Service Ready for AI Agents? Run the Free POKE Audit](https://link.svix.com/cooper-p-04) — A free agent skill that audits your Go service and gives the smallest steps to add an event log, SSE, and webhooks. 

Svix sponsor   

📄 [The `MustCreate` Pattern for Go Tests](https://mtlynch.io/notes/go-must-create-pattern/) – How a generic `MustCreate(t, NewUsername, "joe123")` can replace a pile of per-type test helpers. Michael Lynch 

📄 [The Heap Profile Named a Function I Didn't Write](https://gopheria.com/blog/pprof-alloc-space-versus-inuse-space/) – `alloc_space` measures churn, `inuse_space` what's still live, which can point to different allocation hotspots. Nolan Keir 

📄 [Sandboxing Subprocesses with Landlock in Go 1.28](https://abdolirad.me/articles/go-1-28-landlock-subprocess-sandboxing/) – How Go 1.28 will make it easier to restrict subprocesses on Linux. Mohammad Abdolirad 

📄 [Five Go Exercises Worth Trying](https://packagemain.tech/p/five-go-exercises-worth-trying) – Picks from the [practice-go](https://github.com/plutov/practice-go) challenge collection, each with a solution walkthrough. Alex Pliutau  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/drzxpcduyze63kwhwxg3.jpg)](https://blog.jetbrains.com/go/2026/11/05/goland-2026-3-is-now-available/)  

[GoLand 2026.3: Coding Agents Move Into the Go IDE](https://blog.jetbrains.com/go/2026/11/05/goland-2026-3-is-now-available/) — [JetBrains Air](https://www.jetbrains.com/air/) is a system for running existing terminal coding agents (like Claude or Codex) within IDEs, and it's now included in JetBrains' Go IDE. A redesigned _Home_ window and Git worktree improvements round out the release. 

Artem Pronichev (JetBrains)   

[go-yaml v4: The First Stable Release Under the YAML Org](https://github.com/yaml/go-yaml/releases/tag/v4.0.0) — The archived `gopkg.in/yaml.v3` now has a stable successor, adding `Load` and `Dump` functions that take options, a plugin system, and a debugging CLI. `Dump`'s formatting defaults differ from `Marshal`'s, and v2 and v3 now get security fixes only. 

The YAML Organization   

🔎 [Betterleaks: A Secrets Scanner from the Creator of Gitleaks](https://github.com/betterleaks/betterleaks) — The creator of Gitleaks no longer controls that project, so this is its successor, written in Go. It scans Git history, GitHub/GitLab orgs, S3 and container images, and can check whether found keys are still active. 

Zach Rice et al.   

[Fanout: A Single-Binary OpenTelemetry Backend in Go](https://fanout.run/) — From the creator of Echo: OTLP in, Parquet on disk, DuckDB for queries, all in one Go binary. It's alpha, but could be an appealing alternative to a full observability stack for smaller setups. [GitHub repo](https://github.com/labstack/fanout). 

Vishal Rana      

📰 Classifieds   

Billion-row analytics with plain database/sql: [TimescaleDB](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=golang-weekly-newsletter) extends Postgres, so your Go code doesn’t change. [Get $1000 credit](https://www.tigerdata.com/go/trial?utm_source=content-syndication&utm_medium=referral&utm_campaign=golang-weekly-newsletter). 

--- 

[WarpBuild](https://www.warpbuild.com/start?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=h2-2026&utm_content=golangweekly-2026-11-06) provides optimized hardware and fast Golang caches for CI. At half the cost. [Get $50 in free credits](https://www.warpbuild.com/start?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=h2-2026&utm_content=golangweekly-2026-11-06) with code`START50`.     

- 🔒 [pgx 5.12](https://github.com/jackc/pgx/blob/master/CHANGELOG.md#5120-october-30-2026) – The Postgres driver fixes a SQL injection in simple-protocol batches and a `require_auth`bypass. It also adds batched transaction startup, client certificate policy controls, and per-query batch timing.
- [Wails 3.1](https://wails.io/blog/wails-v3-1-released/) – An update after last week's [big 3.0 release](https://wails.io/blog/wails-v3-released/) with fixes, performance improvements, and experimental cgo-free macOS and Linux backends.
- 🤖 [ADK for Go 2.7](https://github.com/google/adk-go/releases/tag/v2.7.0) – Google's agent toolkit adds Claude as a first-party (experimental) model option and experimental classifiers for workflow routing.
- [Excelize 2.11.1](https://github.com/qax-os/excelize/releases/tag/v2.11.1) – The spreadsheet reading/writing library tackles 16 CVEs, mostly crashes and runaway allocations on malicious input, and now requires Go 1.26+.
- [Ginkgo 2.34](https://github.com/onsi/ginkgo/releases/tag/v2.34.0) – The BDD-style test framework adds `DeferOnFailure` for capturing state before teardown destroys it.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict).
Go is a [trademark of Google](https://go.dev/brand).
The [Go gopher](https://go.dev/blog/gopher), whenever used, is an original creation by Renée French. 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
