mirror of
https://github.com/serde-rs/json.git
synced 2025-10-02 15:26:00 +00:00
adds as_number
to Value
This commit is contained in:
parent
6525ffa364
commit
b438004775
@ -495,6 +495,34 @@ impl Value {
|
||||
}
|
||||
}
|
||||
|
||||
/// If the `Value` is an Number, returns the associated [`Number`]. Returns None
|
||||
/// otherwise.
|
||||
///
|
||||
/// ```
|
||||
/// # use serde_json::{json, Number};
|
||||
/// #
|
||||
/// let v = json!({ "a": 1, "b": 2.2, "c": -3, "d": "4" });
|
||||
///
|
||||
/// // The number `1` is an u64.
|
||||
/// assert_eq!(v["a"].as_number().unwrap(), &Number::from(1u64));
|
||||
///
|
||||
/// // The number `2.2` is an f64.
|
||||
/// assert_eq!(v["b"].as_number().unwrap(), &Number::from_f64(2.2f64).unwrap());
|
||||
///
|
||||
/// // The number `-3` is an i64.
|
||||
/// assert_eq!(v["c"].as_number().unwrap(), &Number::from(-3i64));
|
||||
///
|
||||
/// // The string `"4"` is not a number.
|
||||
/// assert_eq!(v["d"].as_number(), None);
|
||||
///
|
||||
/// ```
|
||||
pub fn as_number(&self) -> Option<&Number> {
|
||||
match self {
|
||||
Value::Number(number) => Some(number),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns true if the `Value` is a Number. Returns false otherwise.
|
||||
///
|
||||
/// ```
|
||||
|
Loading…
x
Reference in New Issue
Block a user