jsonenc

package
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 3, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package jsonenc is zip's single JSON entry point.

All JSON marshalling in zip — c.JSON(), c.Bind().Body(), typed.go's generic In/Out handlers, module.go's extension envelope — goes through Marshal / Unmarshal here. There is no other JSON path.

Implementation: two build-tag-gated files swap the body. When the binary is compiled with GOEXPERIMENT=jsonv2, the import resolver can reach the stdlib's encoding/json/v2 package and the v2.go file is selected; otherwise v1.go is selected and we fall back to stdlib encoding/json. Either way callers see Marshal / Unmarshal — no v1/v2 branching in zip's own code.

Per HIP-0106 "Wire protocol stack": JSON is the boundary format (ingress → gateway → subsystem handler). Inter-subsystem calls use ZAP-typed Go values. JSON marshalling happens at most once per request, at the subsystem handler boundary, through THIS package.

Brand policy: no third-party JSON library is allowed. Stdlib only. goccy/go-json, sonic, jsoniter, and friends are NOT permitted in the Hanzo Go stack — see HIP-0106 canonical Hanzo Go stack.

Index

Constants

View Source
const Variant = "encoding/json"

Variant reports which JSON implementation backs this build. v2 is reachable only under `GOEXPERIMENT=jsonv2`; without that flag the stdlib encoding/json/v2 import does not resolve at compile time and zip falls back to encoding/json v1. zip.New() logs Variant once at startup so operators can spot a missing GOEXPERIMENT in CI.

Variables

This section is empty.

Functions

func Marshal

func Marshal(v any) ([]byte, error)

Marshal encodes v as JSON via encoding/json (v1).

func Unmarshal

func Unmarshal(data []byte, v any) error

Unmarshal decodes data into v via encoding/json (v1).

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL