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
[src]
Create an empty JsonValue::Object
instance.
When creating an object with data, consider using the object!
macro.
fn new_array() -> JsonValue
[src]
Create an empty JsonValue::Array
instance.
When creating array with data, consider using the array!
macro.
fn dump(&self) -> String
[src]
Prints out the value as JSON string.
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.
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.
fn write<W: Write>(&self, writer: &mut W) -> Result<()>
[src]
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<()>
[src]
Writes the JSON as byte stream into an implementor of std::io::Write
.
fn is_string(&self) -> bool
[src]
fn is_number(&self) -> bool
[src]
fn is_boolean(&self) -> bool
[src]
fn is_null(&self) -> bool
[src]
fn is_object(&self) -> bool
[src]
fn is_array(&self) -> bool
[src]
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!{}
)
fn as_str(&self) -> Option<&str>
[src]
fn as_number(&self) -> Option<Number>
[src]
fn as_f64(&self) -> Option<f64>
[src]
fn as_f32(&self) -> Option<f32>
[src]
fn as_u64(&self) -> Option<u64>
[src]
fn as_u32(&self) -> Option<u32>
[src]
fn as_u16(&self) -> Option<u16>
[src]
fn as_u8(&self) -> Option<u8>
[src]
fn as_usize(&self) -> Option<usize>
[src]
fn as_i64(&self) -> Option<i64>
[src]
fn as_i32(&self) -> Option<i32>
[src]
fn as_i16(&self) -> Option<i16>
[src]
fn as_i8(&self) -> Option<i8>
[src]
fn as_isize(&self) -> Option<isize>
[src]
fn as_bool(&self) -> Option<bool>
[src]
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));
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));
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());
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());
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.
fn pop(&mut self) -> JsonValue
[src]
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>,
[src]
T: PartialEq<JsonValue>,
Works on JsonValue::Array
- checks if the array contains a value
fn has_key(&self, key: &str) -> bool
[src]
Works on JsonValue::Object
- checks if the object has a key
fn len(&self) -> usize
[src]
Returns length of array or object (number of keys), defaults to 0
for
other types.
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.
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.
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.
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.
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.
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
.
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<'a> From<&'a str> for JsonValue
[src]
impl<T: Into<JsonValue>> From<Option<T>> for JsonValue
[src]
impl<T: Into<JsonValue>> From<Vec<T>> for JsonValue
[src]
impl From<HashMap<String, JsonValue>> for JsonValue
[src]
impl From<BTreeMap<String, JsonValue>> for JsonValue
[src]
impl<'a> PartialEq<&'a str> for JsonValue
[src]
fn eq(&self, other: &&str) -> bool
[src]
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[src]
This method tests for !=
.
impl PartialEq<str> for JsonValue
[src]
fn eq(&self, other: &str) -> bool
[src]
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[src]
This method tests for !=
.
impl From<String> for JsonValue
[src]
impl PartialEq<String> for JsonValue
[src]
fn eq(&self, other: &String) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<String> for &'a JsonValue
[src]
fn eq(&self, other: &String) -> bool
[src]
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[src]
This method tests for !=
.
impl From<isize> for JsonValue
[src]
impl PartialEq<isize> for JsonValue
[src]
fn eq(&self, other: &isize) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<isize> for &'a JsonValue
[src]
fn eq(&self, other: &isize) -> bool
[src]
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[src]
This method tests for !=
.
impl From<usize> for JsonValue
[src]
impl PartialEq<usize> for JsonValue
[src]
fn eq(&self, other: &usize) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<usize> for &'a JsonValue
[src]
fn eq(&self, other: &usize) -> bool
[src]
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[src]
This method tests for !=
.
impl From<i8> for JsonValue
[src]
impl PartialEq<i8> for JsonValue
[src]
fn eq(&self, other: &i8) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<i8> for &'a JsonValue
[src]
fn eq(&self, other: &i8) -> bool
[src]
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[src]
This method tests for !=
.
impl From<i16> for JsonValue
[src]
impl PartialEq<i16> for JsonValue
[src]
fn eq(&self, other: &i16) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<i16> for &'a JsonValue
[src]
fn eq(&self, other: &i16) -> bool
[src]
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[src]
This method tests for !=
.
impl From<i32> for JsonValue
[src]
impl PartialEq<i32> for JsonValue
[src]
fn eq(&self, other: &i32) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<i32> for &'a JsonValue
[src]
fn eq(&self, other: &i32) -> bool
[src]
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[src]
This method tests for !=
.
impl From<i64> for JsonValue
[src]
impl PartialEq<i64> for JsonValue
[src]
fn eq(&self, other: &i64) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<i64> for &'a JsonValue
[src]
fn eq(&self, other: &i64) -> bool
[src]
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[src]
This method tests for !=
.
impl From<u8> for JsonValue
[src]
impl PartialEq<u8> for JsonValue
[src]
fn eq(&self, other: &u8) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<u8> for &'a JsonValue
[src]
fn eq(&self, other: &u8) -> bool
[src]
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[src]
This method tests for !=
.
impl From<u16> for JsonValue
[src]
impl PartialEq<u16> for JsonValue
[src]
fn eq(&self, other: &u16) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<u16> for &'a JsonValue
[src]
fn eq(&self, other: &u16) -> bool
[src]
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[src]
This method tests for !=
.
impl From<u32> for JsonValue
[src]
impl PartialEq<u32> for JsonValue
[src]
fn eq(&self, other: &u32) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<u32> for &'a JsonValue
[src]
fn eq(&self, other: &u32) -> bool
[src]
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[src]
This method tests for !=
.
impl From<u64> for JsonValue
[src]
impl PartialEq<u64> for JsonValue
[src]
fn eq(&self, other: &u64) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<u64> for &'a JsonValue
[src]
fn eq(&self, other: &u64) -> bool
[src]
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[src]
This method tests for !=
.
impl From<f32> for JsonValue
[src]
impl PartialEq<f32> for JsonValue
[src]
fn eq(&self, other: &f32) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<f32> for &'a JsonValue
[src]
fn eq(&self, other: &f32) -> bool
[src]
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[src]
This method tests for !=
.
impl From<f64> for JsonValue
[src]
impl PartialEq<f64> for JsonValue
[src]
fn eq(&self, other: &f64) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<f64> for &'a JsonValue
[src]
fn eq(&self, other: &f64) -> bool
[src]
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[src]
This method tests for !=
.
impl From<Number> for JsonValue
[src]
impl PartialEq<Number> for JsonValue
[src]
fn eq(&self, other: &Number) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<Number> for &'a JsonValue
[src]
fn eq(&self, other: &Number) -> bool
[src]
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[src]
This method tests for !=
.
impl From<Object> for JsonValue
[src]
impl PartialEq<Object> for JsonValue
[src]
fn eq(&self, other: &Object) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<Object> for &'a JsonValue
[src]
fn eq(&self, other: &Object) -> bool
[src]
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[src]
This method tests for !=
.
impl From<bool> for JsonValue
[src]
impl PartialEq<bool> for JsonValue
[src]
fn eq(&self, other: &bool) -> bool
[src]
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[src]
This method tests for !=
.
impl<'a> PartialEq<bool> for &'a JsonValue
[src]
fn eq(&self, other: &bool) -> bool
[src]
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[src]
This method tests for !=
.
impl Debug for JsonValue
[src]
impl Clone for JsonValue
[src]
fn clone(&self) -> JsonValue
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl PartialEq for JsonValue
[src]
fn eq(&self, other: &Self) -> bool
[src]
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[src]
This method tests for !=
.
impl Eq for JsonValue
[src]
impl Display for JsonValue
[src]
Implements formatting
let data = json::parse(r#"{"url":"https://github.com/"}"#).unwrap(); println!("{}", data); println!("{:#}", data);
fn fmt(&self, f: &mut Formatter) -> Result
[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");
type Output = JsonValue
The returned type after indexing.
fn index(&self, index: usize) -> &JsonValue
[src]
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");
fn index_mut(&mut self, index: usize) -> &mut JsonValue
[src]
Performs the mutable 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");
type Output = JsonValue
The returned type after indexing.
fn index(&self, index: &str) -> &JsonValue
[src]
Performs the indexing (container[index]
) operation.
impl Index<String> for JsonValue
[src]
type Output = JsonValue
The returned type after indexing.
fn index(&self, index: String) -> &JsonValue
[src]
Performs the indexing (container[index]
) operation.
impl<'a> Index<&'a String> for JsonValue
[src]
type Output = JsonValue
The returned type after indexing.
fn index(&self, index: &String) -> &JsonValue
[src]
Performs the 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);
fn index_mut(&mut self, index: &str) -> &mut JsonValue
[src]
Performs the mutable indexing (container[index]
) operation.
impl IndexMut<String> for JsonValue
[src]
fn index_mut(&mut self, index: String) -> &mut JsonValue
[src]
Performs the mutable indexing (container[index]
) operation.