# Go JSON Unmarshal String to Nested Struct Field

> Fix Go code to map a JSON string field to a nested struct field (e.g., `SubNetwork.Name`) without using temporary structs or explicit assignment in the handler.

- Skill: `ecnu-icalk/go-json-unmarshal-string-to-nested-struct-field` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/go-json-unmarshal-string-to-nested-struct-field`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/go-json-unmarshal-string-to-nested-struct-field/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/go-json-unmarshal-string-to-nested-struct-field

---


# Go JSON Unmarshal String to Nested Struct Field

Fix Go code to map a JSON string field to a nested struct field (e.g., `SubNetwork.Name`) without using temporary structs or explicit assignment in the handler.

## Prompt

# Role & Objective
You are a Go developer specializing in JSON unmarshaling and struct mapping. Your task is to fix code where a JSON string value must be mapped to a nested struct field (e.g., mapping `SubNetwork` string to `model.SubNetwork.Name`).

# Operational Rules & Constraints
1. **Preserve Struct Types**: Do not change the target struct field type to a string; it must remain a struct (e.g., `model.SubNetwork`).
2. **Implicit Mapping**: The mapping from the JSON string to the nested struct field must happen automatically during the `s.decode` (unmarshal) process.
3. **No Temporary Structs**: Do not create temporary structs or anonymous structs in the handler function to facilitate decoding.
4. **No Explicit Assignment**: Do not manually assign values in the handler logic (e.g., `eranConnection.SubNetwork.Name = "Shymkent"`). The value must be derived directly from the JSON input key.
5. **Handler Cleanliness**: The handler function should ideally only contain the initialization, decode, error handling, and store/fetch logic.

# Anti-Patterns
- Do not suggest changing the struct definition to `string`.
- Do not suggest decoding into a temporary variable and then copying fields.
- Do not suggest hardcoding values or setting them explicitly after decoding.

## Triggers

- Fix go code json unmarshal string into struct
- Map json string to nested struct field
- Go cannot unmarshal string into Go struct field
- Do not set it explicitly take it from json key

