Enum json::JsonValue
[−]
[src]
pub enum JsonValue { Null, Short(Short), String(String), Number(Number), Boolean(bool), Object(Object), Array(Vec<JsonValue>), }
Variants
Null
Short(Short)
String(String)
Number(Number)
Boolean(bool)
Object(Object)
Array(Vec<JsonValue>)
Methods
impl JsonValue
[src]
fn new_object() -> JsonValue
Create an empty JsonValue::Object
instance.
When creating an object with data, consider using the object!
macro.
fn new_array() -> JsonValue
Create an empty JsonValue::Array
instance.
When creating array with data, consider using the array!
macro.
fn dump(&self) -> String
Prints out the value as JSON string.
fn pretty(&self, spaces: u16) -> String
Pretty prints out the value as JSON string. Takes an argument that's number of spaces to indent new blocks with.
fn to_writer<W: Write>(&self, writer: &mut W)
Dumps the JSON as byte stream into an instance of std::io::Write
.
fn is_string(&self) -> bool
fn is_number(&self) -> bool
fn is_boolean(&self) -> bool
fn is_null(&self) -> bool
fn is_object(&self) -> bool
fn is_array(&self) -> bool
fn is_empty(&self) -> bool
Checks whether the value is empty. Returns true for:
- empty string (
""
) - number
0
- boolean
false
- null
- empty array (
array![]
) - empty object (
object!{}
)
fn as_str(&self) -> Option<&str>
fn as_number(&self) -> Option<Number>
fn as_f64(&self) -> Option<f64>
fn as_f32(&self) -> Option<f32>
fn as_u64(&self) -> Option<u64>
fn as_u32(&self) -> Option<u32>
fn as_u16(&self) -> Option<u16>
fn as_u8(&self) -> Option<u8>
fn as_usize(&self) -> Option<usize>
fn as_i64(&self) -> Option<i64>
fn as_i32(&self) -> Option<i32>
fn as_i16(&self) -> Option<i16>
fn as_i8(&self) -> Option<i8>
fn as_isize(&self) -> Option<isize>
fn as_bool(&self) -> Option<bool>
fn as_fixed_point_u64(&self, point: u16) -> Option<u64>
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));
fn as_fixed_point_i64(&self, point: u16) -> Option<i64>
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));
fn take(&mut self) -> JsonValue
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());
fn take_string(&mut self) -> Option<String>
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());
fn push<T>(&mut self, value: T) -> Result<()> where T: Into<JsonValue>
Works on JsonValue::Array
- pushes a new value to the array.
fn pop(&mut self) -> JsonValue
Works on JsonValue::Array
- remove and return last element from
an array. On failure returns a null.
fn contains<T>(&self, item: T) -> bool where T: Into<JsonValue>
Works on JsonValue::Array
- checks if the array contains a value
fn len(&self) -> usize
Returns length of array or object (number of keys), defaults to 0
for
other types.
fn members(&self) -> Members
Works on JsonValue::Array
- returns an iterator over members.
Will return an empty iterator if called on non-array types.
fn members_mut(&mut self) -> MembersMut
Works on JsonValue::Array
- returns a mutable iterator over members.
Will return an empty iterator if called on non-array types.
fn entries(&self) -> Entries
Works on JsonValue::Object
- returns an iterator over key value pairs.
Will return an empty iterator if called on non-object types.
fn entries_mut(&mut self) -> EntriesMut
Works on JsonValue::Object
- returns a mutable iterator over
key value pairs.
Will return an empty iterator if called on non-object types.
fn remove(&mut self, key: &str) -> JsonValue
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.
fn clear(&mut self)
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<'a> From<&'a str> for JsonValue
[src]
impl<'a> From<Option<&'a str>> for JsonValue
[src]
impl From<HashMap<String, JsonValue>> for JsonValue
[src]
impl From<Option<HashMap<String, JsonValue>>> for JsonValue
[src]
impl From<BTreeMap<String, JsonValue>> for JsonValue
[src]
impl From<Option<BTreeMap<String, JsonValue>>> for JsonValue
[src]
impl From<Option<JsonValue>> for JsonValue
[src]
impl<'a> PartialEq<&'a str> for JsonValue
[src]
fn eq(&self, other: &&str) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl PartialEq<str> for JsonValue
[src]
fn eq(&self, other: &str) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<String> for JsonValue
[src]
impl PartialEq<String> for JsonValue
[src]
fn eq(&self, other: &String) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<String> for &'a JsonValue
[src]
fn eq(&self, other: &String) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<String>> for JsonValue
[src]
impl From<Vec<String>> for JsonValue
[src]
impl From<Vec<Option<String>>> for JsonValue
[src]
impl From<isize> for JsonValue
[src]
impl PartialEq<isize> for JsonValue
[src]
fn eq(&self, other: &isize) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<isize> for &'a JsonValue
[src]
fn eq(&self, other: &isize) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<isize>> for JsonValue
[src]
impl From<Vec<isize>> for JsonValue
[src]
impl From<Vec<Option<isize>>> for JsonValue
[src]
impl From<usize> for JsonValue
[src]
impl PartialEq<usize> for JsonValue
[src]
fn eq(&self, other: &usize) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<usize> for &'a JsonValue
[src]
fn eq(&self, other: &usize) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<usize>> for JsonValue
[src]
impl From<Vec<usize>> for JsonValue
[src]
impl From<Vec<Option<usize>>> for JsonValue
[src]
impl From<i8> for JsonValue
[src]
impl PartialEq<i8> for JsonValue
[src]
fn eq(&self, other: &i8) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<i8> for &'a JsonValue
[src]
fn eq(&self, other: &i8) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<i8>> for JsonValue
[src]
impl From<Vec<i8>> for JsonValue
[src]
impl From<Vec<Option<i8>>> for JsonValue
[src]
impl From<i16> for JsonValue
[src]
impl PartialEq<i16> for JsonValue
[src]
fn eq(&self, other: &i16) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<i16> for &'a JsonValue
[src]
fn eq(&self, other: &i16) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<i16>> for JsonValue
[src]
impl From<Vec<i16>> for JsonValue
[src]
impl From<Vec<Option<i16>>> for JsonValue
[src]
impl From<i32> for JsonValue
[src]
impl PartialEq<i32> for JsonValue
[src]
fn eq(&self, other: &i32) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<i32> for &'a JsonValue
[src]
fn eq(&self, other: &i32) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<i32>> for JsonValue
[src]
impl From<Vec<i32>> for JsonValue
[src]
impl From<Vec<Option<i32>>> for JsonValue
[src]
impl From<i64> for JsonValue
[src]
impl PartialEq<i64> for JsonValue
[src]
fn eq(&self, other: &i64) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<i64> for &'a JsonValue
[src]
fn eq(&self, other: &i64) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<i64>> for JsonValue
[src]
impl From<Vec<i64>> for JsonValue
[src]
impl From<Vec<Option<i64>>> for JsonValue
[src]
impl From<u8> for JsonValue
[src]
impl PartialEq<u8> for JsonValue
[src]
fn eq(&self, other: &u8) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<u8> for &'a JsonValue
[src]
fn eq(&self, other: &u8) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<u8>> for JsonValue
[src]
impl From<Vec<u8>> for JsonValue
[src]
impl From<Vec<Option<u8>>> for JsonValue
[src]
impl From<u16> for JsonValue
[src]
impl PartialEq<u16> for JsonValue
[src]
fn eq(&self, other: &u16) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<u16> for &'a JsonValue
[src]
fn eq(&self, other: &u16) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<u16>> for JsonValue
[src]
impl From<Vec<u16>> for JsonValue
[src]
impl From<Vec<Option<u16>>> for JsonValue
[src]
impl From<u32> for JsonValue
[src]
impl PartialEq<u32> for JsonValue
[src]
fn eq(&self, other: &u32) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<u32> for &'a JsonValue
[src]
fn eq(&self, other: &u32) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<u32>> for JsonValue
[src]
impl From<Vec<u32>> for JsonValue
[src]
impl From<Vec<Option<u32>>> for JsonValue
[src]
impl From<u64> for JsonValue
[src]
impl PartialEq<u64> for JsonValue
[src]
fn eq(&self, other: &u64) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<u64> for &'a JsonValue
[src]
fn eq(&self, other: &u64) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<u64>> for JsonValue
[src]
impl From<Vec<u64>> for JsonValue
[src]
impl From<Vec<Option<u64>>> for JsonValue
[src]
impl From<f32> for JsonValue
[src]
impl PartialEq<f32> for JsonValue
[src]
fn eq(&self, other: &f32) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<f32> for &'a JsonValue
[src]
fn eq(&self, other: &f32) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<f32>> for JsonValue
[src]
impl From<Vec<f32>> for JsonValue
[src]
impl From<Vec<Option<f32>>> for JsonValue
[src]
impl From<f64> for JsonValue
[src]
impl PartialEq<f64> for JsonValue
[src]
fn eq(&self, other: &f64) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<f64> for &'a JsonValue
[src]
fn eq(&self, other: &f64) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<f64>> for JsonValue
[src]
impl From<Vec<f64>> for JsonValue
[src]
impl From<Vec<Option<f64>>> for JsonValue
[src]
impl From<Number> for JsonValue
[src]
impl PartialEq<Number> for JsonValue
[src]
fn eq(&self, other: &Number) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<Number> for &'a JsonValue
[src]
fn eq(&self, other: &Number) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<Number>> for JsonValue
[src]
impl From<Vec<Number>> for JsonValue
[src]
impl From<Vec<Option<Number>>> for JsonValue
[src]
impl From<Object> for JsonValue
[src]
impl PartialEq<Object> for JsonValue
[src]
fn eq(&self, other: &Object) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<Object> for &'a JsonValue
[src]
fn eq(&self, other: &Object) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<Object>> for JsonValue
[src]
impl From<Vec<Object>> for JsonValue
[src]
impl From<Vec<Option<Object>>> for JsonValue
[src]
impl From<Vec<JsonValue>> for JsonValue
[src]
impl PartialEq<Vec<JsonValue>> for JsonValue
[src]
fn eq(&self, other: &Vec<JsonValue>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<Vec<JsonValue>> for &'a JsonValue
[src]
fn eq(&self, other: &Vec<JsonValue>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<Vec<JsonValue>>> for JsonValue
[src]
impl From<Vec<Vec<JsonValue>>> for JsonValue
[src]
impl From<Vec<Option<Vec<JsonValue>>>> for JsonValue
[src]
impl From<bool> for JsonValue
[src]
impl PartialEq<bool> for JsonValue
[src]
fn eq(&self, other: &bool) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<bool> for &'a JsonValue
[src]
fn eq(&self, other: &bool) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl From<Option<bool>> for JsonValue
[src]
impl From<Vec<bool>> for JsonValue
[src]
impl From<Vec<Option<bool>>> for JsonValue
[src]
impl Clone for JsonValue
[src]
fn clone(&self) -> JsonValue
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl PartialEq for JsonValue
[src]
fn eq(&self, __arg_0: &JsonValue) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &JsonValue) -> bool
This method tests for !=
.
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 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
The method for the indexing (Foo[Bar]
) 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");
fn index_mut(&mut self, index: usize) -> &mut JsonValue
The method for the indexing (Foo[Bar]
) 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");
type Output = JsonValue
The returned type after indexing
fn index(&self, index: &str) -> &JsonValue
The method for the indexing (Foo[Bar]
) operation
impl Index<String> for JsonValue
[src]
type Output = JsonValue
The returned type after indexing
fn index(&self, index: String) -> &JsonValue
The method for the indexing (Foo[Bar]
) operation
impl<'a> Index<&'a String> for JsonValue
[src]
type Output = JsonValue
The returned type after indexing
fn index(&self, index: &String) -> &JsonValue
The method for the indexing (Foo[Bar]
) 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);
fn index_mut(&mut self, index: &str) -> &mut JsonValue
The method for the indexing (Foo[Bar]
) operation
impl IndexMut<String> for JsonValue
[src]
fn index_mut(&mut self, index: String) -> &mut JsonValue
The method for the indexing (Foo[Bar]
) operation