3个版本
0.0.3 | 2019年11月2日 |
---|---|
0.0.2 | 2019年11月2日 |
0.0.1 | 2019年10月15日 |
#2144 在 编码
在 jrf 中使用
57KB
1.5K SLoC
Jsonist
JSON格式化工具
它如何工作?
Jsonist将您提供的输入字符串进行标记化,然后构建一个抽象语法树(AST)。
然后,它从AST和可选的配置参数生成格式化的JSON字符串。
示例用法
添加到您的 Cargo.toml
jsonist = '0.0.3'
然后,在您的代码中可以这样使用它
extern crate jsonist;
use jsonist:: { format, FormatConfig, Delimiter, DelimiterCount, FormatterError };
fn example() {
let json = r#"
{
"name": "Peter",
"leg_count": 2,
"languages": ["rust", "javascript", "lisp"],
"address": {
"street_name": "lets not put this online",
"city": "a large one"
},
"winner": true
}
"#.to_owned();
// let config = FormatConfig::new(Delimiter::Tabs);
let config = FormatConfig::new(Delimiter::Spaces(DelimiterCount::Two));
match format(json, config) {
Ok(formatted_json) => {
… do what you want with the 'formatted_json'
}
Err(e) => panic!("{}", e)
}
}
错误类型
(如果您想处理、忽略或打印它们的话)
// General Tokeniser
ExpectedMoreCharacters, InvalidTokenStartCharacter, WrongCharacter
// Tokenising Numbers
InvalidNumberCharacter, ExtraDotInNumber, ExtraEInNumber, NumberLiteralEndingInE,
// Parser
ExpectedMoreTokens, ExpectedColonInKeyValuePair, ExpectedStringLiteral, DuplicateKeyEntry