如何反序列化包含更多 JSON 的字符串的 JSON?
How can I deserialize JSON that contains a string with more JSON?
我有一个 JSON 对象,它包含一个本身是 JSON 对象的字符串。我怎样才能反序列化它?
我希望能够做类似的事情:
#[derive(Deserialize)]
struct B {
c: String,
d: u32,
}
#[derive(Deserialize)]
struct Test {
a: String,
b: B,
}
let object: Test = serde_json::from_str(
r#"
{
"a": "string",
"b": "{\"c\":\"c_string\",\"d\":1234}"
}
"#,
)
.unwrap();
但这会引起 invalid type: string "{\"c\":\"c_string\",\"d\":1234}", expected struct B
的恐慌
您可以使用 serde_with
crate with json::nested
:
#[derive(Deserialize)]
struct Test {
a: String,
#[serde(with = "serde_with::json::nested")]
b: B,
}
我有一个 JSON 对象,它包含一个本身是 JSON 对象的字符串。我怎样才能反序列化它?
我希望能够做类似的事情:
#[derive(Deserialize)]
struct B {
c: String,
d: u32,
}
#[derive(Deserialize)]
struct Test {
a: String,
b: B,
}
let object: Test = serde_json::from_str(
r#"
{
"a": "string",
"b": "{\"c\":\"c_string\",\"d\":1234}"
}
"#,
)
.unwrap();
但这会引起 invalid type: string "{\"c\":\"c_string\",\"d\":1234}", expected struct B
您可以使用 serde_with
crate with json::nested
:
#[derive(Deserialize)]
struct Test {
a: String,
#[serde(with = "serde_with::json::nested")]
b: B,
}