Covers serde/serde_json updates since training cutoff (to 1.0.228/1.0.149): Map sorting, deserialization from Map, RawValue constants, Map FromStr. Load for Rust JSON serialization.
npx claudepluginhub nevaberry/nevaberry-plugins --plugin serde-knowledge-patchThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Implements structured self-debugging workflow for AI agent failures: capture errors, diagnose patterns like loops or context overflow, apply contained recoveries, and generate introspection reports.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Covers serde_json 1.0.129–1.0.143 (Nov 2024 – Aug 2025). Claude Opus 4.6 knows serde through 1.0.200 and serde_json through 1.0.128.
| Topic | Reference | Key features |
|---|---|---|
| Map operations | references/map-operations.md | sort_keys, sort_all_objects, Map as Deserializer, FromStr for Map |
| RawValue | references/rawvalue.md | NULL, TRUE, FALSE associated constants |
| API | Version | What it does |
|---|---|---|
Map::sort_keys() | 1.0.129 | Sort map keys alphabetically in place |
Value::sort_all_objects() | 1.0.129 | Recursively sort all nested object keys |
Map<String, Value>: Deserializer | 1.0.131 | Deserialize structs directly from a map |
&Map<String, Value>: IntoDeserializer | 1.0.131 | Use &map with Deserialize::deserialize |
RawValue::NULL | 1.0.134 | Associated constant for raw "null" |
RawValue::TRUE | 1.0.134 | Associated constant for raw "true" |
RawValue::FALSE | 1.0.134 | Associated constant for raw "false" |
Map<String, Value>: FromStr | 1.0.143 | Parse JSON string into a Map via .parse() |
use serde_json::{Map, Value, json};
// Sort a single map's keys
let mut map: Map<String, Value> = serde_json::from_str(r#"{"z":1,"a":2}"#)?;
map.sort_keys();
// map is now {"a":2,"z":1}
// Recursively sort all nested objects
let mut value = json!({"z": {"c": 1, "a": 2}, "a": 3});
value.sort_all_objects();
// {"a":3,"z":{"a":2,"c":1}}
Use sort_all_objects() before serializing when you need deterministic JSON output (e.g., for hashing, diffing, or snapshot tests).
use serde::Deserialize;
use serde_json::{Map, Value};
#[derive(Deserialize)]
struct Config { name: String, count: u32 }
let map: Map<String, Value> = serde_json::from_str(r#"{"name":"x","count":5}"#)?;
let config = Config::deserialize(&map)?;
Avoids the round-trip through Value when you already have a Map. Works with both owned Map and &Map.
use serde_json::value::RawValue;
let null: &RawValue = RawValue::NULL; // raw "null"
let t: &RawValue = RawValue::TRUE; // raw "true"
let f: &RawValue = RawValue::FALSE; // raw "false"
Useful when constructing partial JSON responses or default values without allocation.
use serde_json::Map;
let map: Map<String, serde_json::Value> = r#"{"a":1}"#.parse()?;
Shorthand for serde_json::from_str when you know the top-level value is an object.