JsonNav¶
Chained navigation wrapper for JSON values. Wraps a JsonValue and provides safe chained access where JsonNotFound propagates through the chain — no exceptions until you extract a typed terminal value.
let nav = JsonNav(json)
try
let name = nav("user")("name").as_string()?
let age = nav("user")("age").as_i64()?
end
Constructors¶
create¶
Wrap a JSON value for navigation.
new val create(
value: (JsonObject val | JsonArray val | String val |
I64 val | F64 val | Bool val |
None val))
: JsonNav val^
Parameters¶
Returns¶
- JsonNav val^
Public Functions¶
apply¶
Navigate into an object by key or array by index. If the current value is JsonNotFound, the wrong type, or the key/index is missing, returns a JsonNotFound-wrapping nav. JsonNotFound propagates through subsequent navigations.
Parameters¶
Returns¶
- JsonNav val
as_string¶
Extract as String. Raises if not a string or JsonNotFound.
Returns¶
- String val ?
as_i64¶
Extract as I64. Raises if not an integer or JsonNotFound.
Returns¶
- I64 val ?
as_f64¶
Extract as F64. Raises if not a float or JsonNotFound.
Returns¶
- F64 val ?
as_bool¶
Extract as Bool. Raises if not a boolean or JsonNotFound.
Returns¶
- Bool val ?
as_null¶
Extract as None (JSON null). Raises if not null or JsonNotFound.
Returns¶
- None val ?
as_object¶
Extract as JsonObject. Raises if not an object or JsonNotFound.
Returns¶
- JsonObject val ?
as_array¶
Extract as JsonArray. Raises if not an array or JsonNotFound.
Returns¶
- JsonArray val ?
json¶
Get the raw value for pattern matching.
fun box json()
: (JsonObject val | JsonArray val | String val |
I64 val | F64 val | Bool val |
None val | JsonNotFound val)
Returns¶
- (JsonObject val | JsonArray val | String val | I64 val | F64 val | Bool val | None val | JsonNotFound val)
found¶
Check whether navigation succeeded (value is not JsonNotFound).
Returns¶
- Bool val
size¶
Size of the wrapped collection. Raises if not an object or array.
Returns¶
- USize val ?