[][src]Enum json::JsonValue

pub enum JsonValue {
    Null,
    Short(Short),
    String(String),
    Number(Number),
    Boolean(bool),
    Object(Object),
    Array(Vec<JsonValue>),
}

Variants

Methods

impl JsonValue
[src]

Create an empty JsonValue::Object instance. When creating an object with data, consider using the object! macro.

Create an empty JsonValue::Array instance. When creating array with data, consider using the array! macro.

Prints out the value as JSON string.

Pretty prints out the value as JSON string. Takes an argument that's number of spaces to indent new blocks with.

Deprecated since 0.10.2

: 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.

Writes the JSON as byte stream into an implementor of std::io::Write.

Writes the JSON as byte stream into an implementor of std::io::Write.

Checks whether the value is empty. Returns true for:

  • empty string ("")
  • number 0
  • boolean false
  • null
  • empty array (array![])
  • empty object (object!{})

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));

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));

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());

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());

Works on JsonValue::Array - pushes a new value to the array.

Works on JsonValue::Array - remove and return last element from an array. On failure returns a null.

Works on JsonValue::Array - checks if the array contains a value

Works on JsonValue::Object - checks if the object has a key

Returns length of array or object (number of keys), defaults to 0 for other types.

Works on JsonValue::Array - returns an iterator over members. Will return an empty iterator if called on non-array types.

Works on JsonValue::Array - returns a mutable iterator over members. Will return an empty iterator if called on non-array types.

Works on JsonValue::Object - returns an iterator over key value pairs. Will return an empty iterator if called on non-object types.

Works on JsonValue::Object - returns a mutable iterator over key value pairs. Will return an empty iterator if called on non-object types.

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.

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.

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]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'a> From<&'a str> for JsonValue
[src]

Performs the conversion.

impl<T: Into<JsonValue>> From<Option<T>> for JsonValue
[src]

Performs the conversion.

impl<T: Into<JsonValue>> From<Vec<T>> for JsonValue
[src]

Performs the conversion.

impl From<HashMap<String, JsonValue, RandomState>> for JsonValue
[src]

Performs the conversion.

impl From<BTreeMap<String, JsonValue>> for JsonValue
[src]

Performs the conversion.

impl From<String> for JsonValue
[src]

Performs the conversion.

impl From<isize> for JsonValue
[src]

Performs the conversion.

impl From<usize> for JsonValue
[src]

Performs the conversion.

impl From<i8> for JsonValue
[src]

Performs the conversion.

impl From<i16> for JsonValue
[src]

Performs the conversion.

impl From<i32> for JsonValue
[src]

Performs the conversion.

impl From<i64> for JsonValue
[src]

Performs the conversion.

impl From<u8> for JsonValue
[src]

Performs the conversion.

impl From<u16> for JsonValue
[src]

Performs the conversion.

impl From<u32> for JsonValue
[src]

Performs the conversion.

impl From<u64> for JsonValue
[src]

Performs the conversion.

impl From<f32> for JsonValue
[src]

Performs the conversion.

impl From<f64> for JsonValue
[src]

Performs the conversion.

impl From<Number> for JsonValue
[src]

Performs the conversion.

impl From<Object> for JsonValue
[src]

Performs the conversion.

impl From<bool> for JsonValue
[src]

Performs the conversion.

impl Eq for JsonValue
[src]

impl<'a> PartialEq<&'a str> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<JsonValue> for &'a str
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<str> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<JsonValue> for str
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<String> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<String> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for String
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<isize> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<isize> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for isize
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<usize> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<usize> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for usize
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<i8> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<i8> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for i8
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<i16> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<i16> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for i16
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<i32> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<i32> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for i32
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<i64> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<i64> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for i64
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<u8> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<u8> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for u8
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<u16> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<u16> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for u16
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<u32> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<u32> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for u32
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<u64> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<u64> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for u64
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<f32> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<f32> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for f32
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<f64> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<f64> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for f64
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<Number> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<Number> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<Object> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<Object> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for Object
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<bool> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> PartialEq<bool> for &'a JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for bool
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<JsonValue> for JsonValue
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Display for JsonValue
[src]

Implements formatting

let data = json::parse(r#"{"url":"https://github.com/"}"#).unwrap();
println!("{}", data);
println!("{:#}", data);

Formats the value using the given formatter. Read more

impl Debug for JsonValue
[src]

Formats the value using the given formatter. Read more

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");

The returned type after indexing.

Performs the indexing (container[index]) operation.

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");

The returned type after indexing.

Performs the indexing (container[index]) operation.

impl Index<String> for JsonValue
[src]

The returned type after indexing.

Performs the indexing (container[index]) operation.

impl<'a> Index<&'a String> for JsonValue
[src]

The returned type after indexing.

Performs the indexing (container[index]) operation.

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");

Performs the mutable indexing (container[index]) operation.

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);

Performs the mutable indexing (container[index]) operation.

impl IndexMut<String> for JsonValue
[src]

Performs the mutable indexing (container[index]) operation.

impl<'a> IndexMut<&'a String> for JsonValue
[src]

Performs the mutable indexing (container[index]) operation.

Auto Trait Implementations

impl Send for JsonValue

impl Sync for JsonValue

Blanket Implementations

impl<T> From for T
[src]

Performs the conversion.

impl<T, U> Into for T where
    U: From<T>, 
[src]

Performs the conversion.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

Converts the given value to a String. Read more

impl<T> ToOwned for T where
    T: Clone
[src]

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Borrow for T where
    T: ?Sized
[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut for T where
    T: ?Sized
[src]

Mutably borrows from an owned value. Read more

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

🔬 This is a nightly-only experimental API. (get_type_id)

this method will likely be replaced by an associated static

Gets the TypeId of self. Read more