Struct Deserializer

struct Deserializer<R> { ... }

A structure that deserializes JSON into Rust values.

Implementations

impl<'a> Deserializer<read::SliceRead<'a>>

fn from_slice(bytes: &'a [u8]) -> Self

Creates a JSON deserializer from a &[u8].

impl<'a> Deserializer<read::StrRead<'a>>

fn from_str(s: &'a str) -> Self

Creates a JSON deserializer from a &str.

impl<'de, R> Deserializer<R>

fn new(read: R) -> Self

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

When reading from a source against which short reads are not efficient, such as a File, you will want to apply your own buffering because serde_json will not buffer the input. See std::io::BufReader.

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

  • Deserializer::from_str
  • Deserializer::from_slice
  • Deserializer::from_reader

impl<'de, R: Read<'de>> Deserializer<R>

fn end(self: &mut Self) -> Result<()>

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.

fn into_iter<T>(self: Self) -> StreamDeserializer<'de, R, T>
where
    T: de::Deserialize<'de>

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

impl<R> Deserializer<read::IoRead<R>>

fn from_reader(reader: R) -> Self

Creates a JSON deserializer from an io::Read.

Reader-based deserializers do not support deserializing borrowed types like &str, since the std::io::Read trait has no non-copying methods -- everything it does involves copying bytes out of the data source.

impl<R> Freeze for Deserializer<R>

impl<R> RefUnwindSafe for Deserializer<R>

impl<R> Send for Deserializer<R>

impl<R> Sync for Deserializer<R>

impl<R> Unpin for Deserializer<R>

impl<R> UnwindSafe for Deserializer<R>

impl<T> Any for Deserializer<R>

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for Deserializer<R>

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for Deserializer<R>

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> From for Deserializer<R>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T, U> Into for Deserializer<R>

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for Deserializer<R>

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for Deserializer<R>

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>