#serde-json #json #string #traits #serde #parse-error

serde_json_string_parse

将字符串特质解析为JSON,错误情况下返回原始字符串

2个版本

0.1.2 2022年6月8日
0.1.1 2022年6月8日
0.1.0 2022年6月8日

#2197编码

Apache-2.0 OR MIT

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