2个版本
0.1.2 | 2022年6月8日 |
---|---|
0.1.1 | 2022年6月8日 |
0.1.0 |
|
#2197 在 编码
7KB
51 行
Serde json string parse
提供ParseJson
特质和JsonParseError
结构体,允许使用parse_json_with_data_err
特质方法将String
或&str
类型解析为结构体。
在错误情况下,JsonParseError
包含原始的String
或&str
以及来自serde的原始解析错误。
示例
use serde_json_string_parse::{JsonParseError, ParseJson};
#[derive(Deserialize, Debug)]
struct TestStruct {
key: String,
}
#[rustfmt::skip]
let text = String::from(r#"{
"key": "value"
}"#);
let parse_result: TestStruct = text
.parse_json_with_data_err()
.expect("Parsing failed");
assert_eq!(parse_result.key, "value");
use serde_json_string_parse::{JsonParseError, ParseJson};
#[derive(Deserialize, Debug)]
struct TestStruct {
key: String,
}
#[rustfmt::skip]
let text = String::from(r#"{
"key" ___ "value"
}"#);
let parse_error: JsonParseError<String> = text
.clone()
.parse_json_with_data_err::<TestStruct>()
.expect_err("Parsing must fail");
// `original_data` field contains source text
assert_eq!(parse_error.original_data, text);
依赖关系
~355–760KB
~17K SLoC