如何使用 Rust 的serde反序列化以下格式错误的 JSON :
{
"value": True
}
Run Code Online (Sandbox Code Playgroud)
使用此答案,我尝试了以下解决方案:
#[macro_use]
extern crate serde_derive; // 1.0.66
extern crate serde; // 1.0.66
extern crate serde_json; // 1.0.21
use serde::de;
use std::fmt;
#[derive(Debug, PartialEq, Deserialize)]
pub struct Foo {
#[serde(deserialize_with = "deserialize_capitalized_bool")]
pub bar: bool,
}
fn deserialize_capitalized_bool<'de, D>(
deserializer: D,
) -> Result<bool, D::Error>
where
D: de::Deserializer<'de>,
{
struct CapitalizedBoolVisitor;
impl<'de> de::Visitor<'de> for CapitalizedBoolVisitor {
type Value = bool;
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { …Run Code Online (Sandbox Code Playgroud)