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)
: 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.
fn write<W: Write>(&self, writer: &mut W) -> Result<()>
Writes the JSON as byte stream into an implementor of std::io::Write
.
fn write_pretty<W: Write>(&self, writer: &mut W, spaces: u16) -> Result<()>
Writes the JSON as byte stream into an implementor 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));Run
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));Run
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());Run
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());Run
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: PartialEq<JsonValue>
Works on JsonValue::Array
- checks if the array contains a value
fn has_key(&self, key: &str) -> bool
Works on JsonValue::Object
- checks if the object has a key
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 array_remove(&mut self, index: usize) -> JsonValue
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
.
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 Debug for JsonValue
[src]
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 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 Display for JsonValue
[src]
Implements formatting
let data = json::parse(r#"{"url":"https://github.com/"}"#).unwrap(); println!("{}", data); println!("{:#}", data);Run
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");Run
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");Run
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");Run
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);Run
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