3个版本

0.0.3 2019年11月2日
0.0.2 2019年11月2日
0.0.1 2019年10月15日

#2144编码


jrf 中使用

MIT 许可证

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

无运行时依赖项