Enum json::JsonValue [−][src]
Variants
Short(Short)String(String)Number(Number)Boolean(bool)Object(Object)Implementations
impl JsonValue[src]
pub fn new_object() -> JsonValue[src]
Create an empty JsonValue::Object instance.
When creating an object with data, consider using the object! macro.
pub fn new_array() -> JsonValue[src]
Create an empty JsonValue::Array instance.
When creating array with data, consider using the array! macro.
pub fn dump(&self) -> String[src]
Prints out the value as JSON string.
pub fn pretty(&self, spaces: u16) -> String[src]
Pretty prints out the value as JSON string. Takes an argument that's number of spaces to indent new blocks with.
pub fn to_writer<W: Write>(&self, writer: &mut W)[src]
use JsonValue::write instead
Writes the JSON as byte stream into an implementor of std::io::Write.
This method is deprecated as it will panic on io errors, use write instead.
pub fn write<W: Write>(&self, writer: &mut W) -> Result<()>[src]
Writes the JSON as byte stream into an implementor of std::io::Write.
pub fn write_pretty<W: Write>(&self, writer: &mut W, spaces: u16) -> Result<()>[src]
Writes the JSON as byte stream into an implementor of std::io::Write.
pub fn is_string(&self) -> bool[src]
pub fn is_number(&self) -> bool[src]
pub fn is_boolean(&self) -> bool[src]
pub fn is_null(&self) -> bool[src]
pub fn is_object(&self) -> bool[src]
pub fn is_array(&self) -> bool[src]
pub fn is_empty(&self) -> bool[src]
Checks whether the value is empty. Returns true for:
- empty string (
"") - number
0 - boolean
false - null
- empty array (
array![]) - empty object (
object!{})
pub fn as_str(&self) -> Option<&str>[src]
pub fn as_number(&self) -> Option<Number>[src]
pub fn as_f64(&self) -> Option<f64>[src]
pub fn as_f32(&self) -> Option<f32>[src]
pub fn as_u64(&self) -> Option<u64>[src]
pub fn as_u32(&self) -> Option<u32>[src]
pub fn as_u16(&self) -> Option<u16>[src]
pub fn as_u8(&self) -> Option<u8>[src]
pub fn as_usize(&self) -> Option<usize>[src]
pub fn as_i64(&self) -> Option<i64>[src]
pub fn as_i32(&self) -> Option<i32>[src]
pub fn as_i16(&self) -> Option<i16>[src]
pub fn as_i8(&self) -> Option<i8>[src]
pub fn as_isize(&self) -> Option<isize>[src]
pub fn as_bool(&self) -> Option<bool>[src]
pub fn as_fixed_point_u64(&self, point: u16) -> Option<u64>[src]
Obtain an integer at a fixed decimal point. This is useful for converting monetary values and doing arithmetic on them without rounding errors introduced by floating point operations.
Will return None if Number called on a value that's not a number,
or if the number is negative or a NaN.
let price_a = JsonValue::from(5.99); let price_b = JsonValue::from(7); let price_c = JsonValue::from(10.2); assert_eq!(price_a.as_fixed_point_u64(2), Some(599)); assert_eq!(price_b.as_fixed_point_u64(2), Some(700)); assert_eq!(price_c.as_fixed_point_u64(2), Some(1020));
pub fn as_fixed_point_i64(&self, point: u16) -> Option<i64>[src]
Analog to as_fixed_point_u64, except returning a signed
i64, properly handling negative numbers.
let balance_a = JsonValue::from(-1.49); let balance_b = JsonValue::from(42); assert_eq!(balance_a.as_fixed_point_i64(2), Some(-149)); assert_eq!(balance_b.as_fixed_point_i64(2), Some(4200));
pub fn take(&mut self) -> JsonValue[src]
Take over the ownership of the value, leaving Null in it's place.
Example
let mut data = array!["Foo", 42]; let first = data[0].take(); let second = data[1].take(); assert!(first == "Foo"); assert!(second == 42); assert!(data[0].is_null()); assert!(data[1].is_null());
pub fn take_string(&mut self) -> Option<String>[src]
Checks that self is a string, returns an owned Rust String, leaving
Null in it's place.
-
If the contained string is already a heap allocated
String, then the ownership is moved without any heap allocation. -
If the contained string is a
Short, this will perform a heap allocation to convert the types for you.
Example
let mut data = array!["Hello", "World"]; let owned = data[0].take_string().expect("Should be a string"); assert_eq!(owned, "Hello"); assert!(data[0].is_null());
pub fn push<T>(&mut self, value: T) -> Result<()> where
T: Into<JsonValue>, [src]
T: Into<JsonValue>,
Works on JsonValue::Array - pushes a new value to the array.
pub fn pop(&mut self) -> JsonValue[src]
Works on JsonValue::Array - remove and return last element from
an array. On failure returns a null.
pub fn contains<T>(&self, item: T) -> bool where
T: PartialEq<JsonValue>, [src]
T: PartialEq<JsonValue>,
Works on JsonValue::Array - checks if the array contains a value
pub fn has_key(&self, key: &str) -> bool[src]
Works on JsonValue::Object - checks if the object has a key
pub fn len(&self) -> usize[src]
Returns length of array or object (number of keys), defaults to 0 for
other types.
pub fn members(&self) -> Members<'_>[src]
Works on JsonValue::Array - returns an iterator over members.
Will return an empty iterator if called on non-array types.
pub fn members_mut(&mut self) -> MembersMut<'_>[src]
Works on JsonValue::Array - returns a mutable iterator over members.
Will return an empty iterator if called on non-array types.
pub fn entries(&self) -> Entries<'_>[src]
Works on JsonValue::Object - returns an iterator over key value pairs.
Will return an empty iterator if called on non-object types.
pub fn entries_mut(&mut self) -> EntriesMut<'_>[src]
Works on JsonValue::Object - returns a mutable iterator over
key value pairs.
Will return an empty iterator if called on non-object types.
pub fn insert<T>(&mut self, key: &str, value: T) -> Result<()> where
T: Into<JsonValue>, [src]
T: Into<JsonValue>,
Works on JsonValue::Object - inserts a new entry, or override an existing
one into the object. Note that key has to be a &str slice and not an owned
String. The internals of Object will handle the heap allocation of the key
if needed for better performance.
pub fn remove(&mut self, key: &str) -> JsonValue[src]
Works on JsonValue::Object - remove a key and return the value it held.
If the key was not present, the method is called on anything but an
object, it will return a null.
pub fn array_remove(&mut self, index: usize) -> JsonValue[src]
Works on JsonValue::Array - remove an entry and return the value it held.
If the method is called on anything but an object or if the index is out of bounds, it
will return JsonValue::Null.
pub fn clear(&mut self)[src]
When called on an array or an object, will wipe them clean. When called on a string will clear the string. Numbers and booleans become null.
Trait Implementations
impl Clone for JsonValue[src]
impl Debug for JsonValue[src]
impl Display for JsonValue[src]
Implements formatting
let data = json::parse(r#"{"url":"https://github.com/"}"#).unwrap(); println!("{}", data); println!("{:#}", data);
impl Eq for JsonValue[src]
impl<'a, T: Into<JsonValue> + Clone> From<&'a [T]> for JsonValue[src]
impl<'a> From<&'a str> for JsonValue[src]
impl<K: AsRef<str>, V: Into<JsonValue>> From<BTreeMap<K, V>> for JsonValue[src]
impl<K: AsRef<str>, V: Into<JsonValue>> From<HashMap<K, V, RandomState>> for JsonValue[src]
impl From<Number> for JsonValue[src]
impl From<Object> for JsonValue[src]
impl<T: Into<JsonValue>> From<Option<T>> for JsonValue[src]
impl From<String> for JsonValue[src]
impl<T: Into<JsonValue>> From<Vec<T, Global>> for JsonValue[src]
impl From<bool> for JsonValue[src]
impl From<f32> for JsonValue[src]
impl From<f64> for JsonValue[src]
impl From<i16> for JsonValue[src]
impl From<i32> for JsonValue[src]
impl From<i64> for JsonValue[src]
impl From<i8> for JsonValue[src]
impl From<isize> for JsonValue[src]
impl From<u16> for JsonValue[src]
impl From<u32> for JsonValue[src]
impl From<u64> for JsonValue[src]
impl From<u8> for JsonValue[src]
impl From<usize> for JsonValue[src]
impl<'a> Index<&'a String> for JsonValue[src]
type Output = JsonValue
The returned type after indexing.
fn index(&self, index: &String) -> &JsonValue[src]
impl<'a> Index<&'a str> for JsonValue[src]
Implements indexing by &str to easily access object members:
Example
let object = object!{ foo: "bar" }; assert!(object["foo"] == "bar");
type Output = JsonValue
The returned type after indexing.
fn index(&self, index: &str) -> &JsonValue[src]
impl Index<String> for JsonValue[src]
type Output = JsonValue
The returned type after indexing.
fn index(&self, index: String) -> &JsonValue[src]
impl Index<usize> for JsonValue[src]
Implements indexing by usize to easily access array members:
Example
let mut array = JsonValue::new_array(); array.push("foo"); assert!(array[0] == "foo");
type Output = JsonValue
The returned type after indexing.
fn index(&self, index: usize) -> &JsonValue[src]
impl<'a> IndexMut<&'a String> for JsonValue[src]
impl<'a> IndexMut<&'a str> for JsonValue[src]
Implements mutable indexing by &str to easily modify object members:
Example
let mut object = object!{}; object["foo"] = 42.into(); assert!(object["foo"] == 42);
impl IndexMut<String> for JsonValue[src]
impl IndexMut<usize> for JsonValue[src]
Implements mutable indexing by usize to easily modify array members:
Example
let mut array = array!["foo", 3.14]; array[1] = "bar".into(); assert!(array[1] == "bar");
impl<'a> PartialEq<&'a str> for JsonValue[src]
impl<'a> PartialEq<JsonValue> for &'a str[src]
fn eq(&self, other: &JsonValue) -> bool[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool1.0.0[src]
impl<'a> PartialEq<JsonValue> for str[src]
fn eq(&self, other: &JsonValue) -> bool[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool1.0.0[src]
impl PartialEq<JsonValue> for Number[src]
fn eq(&self, other: &JsonValue) -> bool[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool1.0.0[src]
impl PartialEq<JsonValue> for Object[src]
fn eq(&self, other: &JsonValue) -> bool[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool1.0.0[src]
impl PartialEq<JsonValue> for JsonValue[src]
impl PartialEq<Number> for JsonValue[src]
impl<'a> PartialEq<Number> for &'a JsonValue[src]
impl PartialEq<Object> for JsonValue[src]
impl<'a> PartialEq<Object> for &'a JsonValue[src]
impl PartialEq<String> for JsonValue[src]
impl<'a> PartialEq<String> for &'a JsonValue[src]
impl PartialEq<bool> for JsonValue[src]
impl<'a> PartialEq<bool> for &'a JsonValue[src]
impl PartialEq<f32> for JsonValue[src]
impl<'a> PartialEq<f32> for &'a JsonValue[src]
impl PartialEq<f64> for JsonValue[src]
impl<'a> PartialEq<f64> for &'a JsonValue[src]
impl PartialEq<i16> for JsonValue[src]
impl<'a> PartialEq<i16> for &'a JsonValue[src]
impl PartialEq<i32> for JsonValue[src]
impl<'a> PartialEq<i32> for &'a JsonValue[src]
impl PartialEq<i64> for JsonValue[src]
impl<'a> PartialEq<i64> for &'a JsonValue[src]
impl PartialEq<i8> for JsonValue[src]
impl<'a> PartialEq<i8> for &'a JsonValue[src]
impl PartialEq<isize> for JsonValue[src]
impl<'a> PartialEq<isize> for &'a JsonValue[src]
impl PartialEq<str> for JsonValue[src]
impl PartialEq<u16> for JsonValue[src]
impl<'a> PartialEq<u16> for &'a JsonValue[src]
impl PartialEq<u32> for JsonValue[src]
impl<'a> PartialEq<u32> for &'a JsonValue[src]
impl PartialEq<u64> for JsonValue[src]
impl<'a> PartialEq<u64> for &'a JsonValue[src]
impl PartialEq<u8> for JsonValue[src]
impl<'a> PartialEq<u8> for &'a JsonValue[src]
impl PartialEq<usize> for JsonValue[src]
impl<'a> PartialEq<usize> for &'a JsonValue[src]
Auto Trait Implementations
impl RefUnwindSafe for JsonValue[src]
impl Send for JsonValue[src]
impl Sync for JsonValue[src]
impl Unpin for JsonValue[src]
impl UnwindSafe for JsonValue[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T> ToString for T where
T: Display + ?Sized, [src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,