pub struct Error { /* fields omitted */ }
This type represents all possible errors that can occur when serializing or
deserializing JSON data.
One-based line number at which the error was detected.
Characters in the first line of the input (before the first newline
character) are in line 1.
One-based column number at which the error was detected.
The first character in the input and any characters immediately
following a newline character are in column 1.
Note that errors may occur in column 0, for example if a read from an IO
stream fails immediately following a previously read newline character.
Categorizes the cause of this error.
Category::Io
- failure to read or write bytes on an IO stream
Category::Syntax
- input that is not syntactically valid JSON
Category::Data
- input data that is semantically incorrect
Category::Eof
- unexpected end of the input data
Returns true if this error was caused by a failure to read or write
bytes on an IO stream.
Returns true if this error was caused by input that was not
syntactically valid JSON.
Returns true if this error was caused by input data that was
semantically incorrect.
For example, JSON containing a number is semantically incorrect when the
type being deserialized into holds a String.
Returns true if this error was caused by prematurely reaching the end of
the input data.
Callers that process streaming input may be interested in retrying the
deserialization once more data is available.
Convert a serde_json::Error
into an io::Error
.
JSON syntax and data errors are turned into InvalidData
IO errors.
EOF errors are turned into UnexpectedEof
IO errors.
use std::io;
enum MyError {
Io(io::Error),
Json(serde_json::Error),
}
impl From<serde_json::Error> for MyError {
fn from(err: serde_json::Error) -> MyError {
use serde_json::error::Category;
match err.classify() {
Category::Io => {
MyError::Io(err.into())
}
Category::Syntax | Category::Data | Category::Eof => {
MyError::Json(err)
}
}
}
}
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Deprecating in 1.33.0
: replaced by Error::source, which can support downcasting
The lower-level cause of this error, if any. Read more
The lower-level source of this error, if any. Read more
Used when a [Serialize
] implementation encounters any error while serializing a type. Read more
Raised when there is general error when deserializing a type. Read more
Raised when a Deserialize
receives a type different from what it was expecting. Read more
Raised when a Deserialize
receives a value of the right type but that is wrong for some other reason. Read more
Raised when deserializing a sequence or map and the input data contains too many or too few elements. Read more
Raised when a Deserialize
enum type received a variant with an unrecognized name. Read more
Raised when a Deserialize
struct type received a field with an unrecognized name. Read more
Raised when a Deserialize
struct type expected to receive a required field with a particular name but that field was not present in the input. Read more
Raised when a Deserialize
struct type received more than one of the same field. Read more
Converts the given value to a String
. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Mutably borrows from an owned value. Read more