Struct Deserializer

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

A structure that deserializes JSON into Rust values.

Implementations

impl<'a> Deserializer<SliceRead<'a>>

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

Creates a JSON deserializer from a &[u8].

impl<'a> Deserializer<StrRead<'a>>

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

Creates a JSON deserializer from a &str.

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

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(&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) -> StreamDeserializer<'de, R, T>
where
    T: Deserialize<'de>,

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

impl<R> Deserializer<IoRead<R>> where R: Read,

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.

Auto Trait Implementations

impl<R> Freeze for Deserializer<R> where R: Freeze,

impl<R> RefUnwindSafe for Deserializer<R> where R: RefUnwindSafe,

impl<R> Send for Deserializer<R> where R: Send,

impl<R> Sync for Deserializer<R> where R: Sync,

impl<R> Unpin for Deserializer<R> where R: Unpin,

impl<R> UnsafeUnpin for Deserializer<R> where R: UnsafeUnpin,

impl<R> UnwindSafe for Deserializer<R> where R: UnwindSafe,

Blanket Implementations

impl<T> Any for Deserializer<R> where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for Deserializer<R> where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for Deserializer<R> where T: ?Sized,

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

impl<T> From<T> for Deserializer<R>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T, U> Into<U> for Deserializer<R> where U: From<T>,

fn into(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<U> for Deserializer<R> where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for Deserializer<R> where U: TryFrom<T>,

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