Struct serde_json::de::Deserializer [] [src]

pub struct Deserializer<R> { /* fields omitted */ }

A structure that deserializes JSON into Rust values.

Methods

impl<R> Deserializer<R> where R: Read
[src]

Create a JSON deserializer from one of the possible serde_json input sources.

Typically it is more convenient to use one of these methods instead:

  • Deserializer::from_str
  • Deserializer::from_bytes
  • Deserializer::from_iter
  • Deserializer::from_reader

impl<I> Deserializer<IteratorRead<I>> where I: Iterator<Item=Result<u8>>
[src]

Creates a JSON deserializer from a std::iter::Iterator.

impl<R> Deserializer<IoRead<R>> where R: Read
[src]

Creates a JSON deserializer from an io::Read.

impl<'a> Deserializer<SliceRead<'a>>
[src]

Creates a JSON deserializer from a &[u8].

impl<'a> Deserializer<StrRead<'a>>
[src]

Creates a JSON deserializer from a &str.

impl<R: Read> Deserializer<R>
[src]

The Deserializer::end method should be called after a value has been fully deserialized. This allows the Deserializer to validate that the input stream is at the end or that it only has trailing whitespace.

Turn a JSON deserializer into an iterator over values of type T.

Trait Implementations

impl<'a, R: Read> Deserializer for &'a mut Deserializer<R>
[src]

The error type that can be returned if some error occurs during deserialization. Read more

Require the Deserializer to figure out how to drive the visitor based on what data type is in the input. Read more

Parses a null as a None, and any other values as a Some(...).

Parses a newtype struct as the underlying value.

Parses an enum as an object like {"$KEY":$VALUE}, where $VALUE is either a straight value, a [..], or a {..}.

Parses a JSON string as bytes. Note that this function does not check whether the bytes represent valid unicode code points.

The JSON specification requires that strings only contain valid unicode characters. To deal with non-conforming JSON, you may use this function, which attempts to parse a string without checking whether the bytes represent valid unicode code points.

Escape sequences are processed as usual, and for \uXXXX escapes it is still checked if the hex number represents a valid unicode code point.

Example usage

You can use this to parse JSON strings containing non-unicode bytes:

let bytes = serde::bytes::ByteBuf::from(b"some raw bytes: \xe5\x00\xe5".to_vec());
let parsed = serde_json::from_slice(  b"\"some raw bytes: \xe5\x00\xe5\"").unwrap();
 
assert_eq!(bytes, parsed);

\u escape sequences with invalid unicode code points still fail to parse:

let json = "\"invalid unicode surrogate: \\uD801\"";
let parsed: Result<serde::bytes::ByteBuf, _> = serde_json::from_str(json);
assert!(parsed.is_err(), "{} should not parse: {:?}", json, parsed);

Hint that the Deserialize type is expecting a byte array and would benefit from taking ownership of buffered data owned by the Deserializer. Read more

Hint that the Deserialize type is expecting a bool value.

Hint that the Deserialize type is expecting a u8 value.

Hint that the Deserialize type is expecting a u16 value.

Hint that the Deserialize type is expecting a u32 value.

Hint that the Deserialize type is expecting a u64 value.

Hint that the Deserialize type is expecting an i8 value.

Hint that the Deserialize type is expecting an i16 value.

Hint that the Deserialize type is expecting an i32 value.

Hint that the Deserialize type is expecting an i64 value.

Hint that the Deserialize type is expecting a f32 value.

Hint that the Deserialize type is expecting a f64 value.

Hint that the Deserialize type is expecting a char value.

Hint that the Deserialize type is expecting a string value and does not benefit from taking ownership of buffered data owned by the Deserializer. Read more

Hint that the Deserialize type is expecting a string value and would benefit from taking ownership of buffered data owned by the Deserializer. Read more

Hint that the Deserialize type is expecting a unit value.

Hint that the Deserialize type is expecting a sequence of values.

Hint that the Deserialize type is expecting a sequence of values and knows how many values there are without looking at the serialized data. Read more

Hint that the Deserialize type is expecting a map of key-value pairs.

Hint that the Deserialize type is expecting a unit struct with a particular name. Read more

Hint that the Deserialize type is expecting a tuple struct with a particular name and number of fields. Read more

Hint that the Deserialize type is expecting a struct with a particular name and fields. Read more

Hint that the Deserialize type is expecting the name of a struct field. Read more

Hint that the Deserialize type is expecting a tuple value with a particular number of elements. Read more

Hint that the Deserialize type needs to deserialize a value whose type doesn't matter because it is ignored. Read more