Thanks to visit codestin.com
Credit goes to docs.rs

Skip to main content

Crate json_pluck

Crate json_pluck 

Source
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 access
  • a.b[0] — array indexing
  • a.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)));

Functions§

pluck
Pluck a single value by path.
pluck_mut
Mutable variant.