Expand description
§json-pluck
Pluck a single value out of a serde_json::Value by dotted path or
a tiny subset of JSONPath. Lossy and forgiving — built for the kind
of LLM-emitted JSON where the answer is buried under unpredictable
wrappers.
Supported path syntax:
a.b.c— nested object accessa.b[0]— array indexinga.b[-1]— negative array indexing (-1 = last)**.answer— first match anywhere under the root (BFS)
§Example
use json_pluck::pluck;
use serde_json::json;
let v = json!({
"result": {
"items": [
{ "value": 1 },
{ "value": 42 }
]
}
});
assert_eq!(pluck(&v, "result.items[1].value"), Some(&json!(42)));
assert_eq!(pluck(&v, "result.items[-1].value"), Some(&json!(42)));
assert_eq!(pluck(&v, "**.value"), Some(&json!(1)));