#json-object #json #write #slice #highlight #highlighting #printing

json-highlight-writer

json-highlight-writer 是一个用于 json-rust 对象的写入器,支持在打印 JSON 对象时高亮显示切片

3 个版本 (稳定版)

1.1.0 2019年5月2日
1.0.0 2019年5月2日
0.1.0 2019年5月2日

#22#highlight


jg 使用

MIT 许可证

120KB
807

json-highlight-writer

一个用于 json-rust 对象的写入器,支持在打印 JSON 对象时高亮显示切片

用法

有两个公共函数

highlight

highlight 函数接收一个 JSON 对象和一个你希望高亮显示的切片向量。

use colored::*;
use json::*;
use json_highlight_writer::{highlight_with_colors, highlight};

let res = object!{
    "code" => 200,
    "success" => true,
    "payload" => object!{
        "features" => array![
            "awesome",
            "easyAPI",
            "lowLearningCurve"
        ]
    }
};

println!("{:#}", highlight(&res, vec![&res["code"], &res["payload"]["features"]]));

此代码将打印出整个 JSON 结构,其中代码字段和功能数组将以红色高亮显示。

Single Color Matches

highlight_with_colors

highlight_with_colors 函数接收一个 JSON 对象、一个你希望高亮显示的切片向量和匹配切片时循环的颜色向量。

println!("{:#}", highlight_with_colors(&res, vec![&res["code"], &res["payload"]["features"]], Some(vec![Color::Red, Color::Green]), None));

println!("{:#}", highlight_with_colors(&res, vec![&res["payload"], &res["payload"]["features"]], Some(vec![Color::Red, Color::Green]), None));

此代码将打印出整个 JSON 结构两次,切片将以红色和绿色高亮显示。注意内部颜色高亮,用于在另一个匹配切片内部显示匹配的切片。

Multiple Color Matches

如果切片的数量多于指定的颜色数量,则高亮显示将循环通过向量。

println!("{:#}", highlight_with_colors(&res, vec![&res["code"], &res["payload"], &res["payload"]["features"]], Some(vec![Color::Red, Color::Green]), None));

highlight_with_colors 还可以接受一个用于 remainder(即与切片不重叠的 JSON 部分)的颜色。

println!("{:#}", highlight_with_colors(&res, vec![&res["code"], &res["payload"], &res["payload"]["features"]], Some(vec![Color::Red, Color::Green]), Some(Color::White)));

Overlapping Matches

依赖关系

~0.2–7.5MB
~44K SLoC