#convert-json #testing #key-quotes

json_keyquotes_convert

Rust 库,用于在带引号和不带引号的 JSON 之间转换

6 个版本

0.2.3 2023 年 8 月 17 日
0.2.2 2023 年 8 月 17 日
0.2.1 2022 年 10 月 29 日
0.1.1 2022 年 9 月 26 日

14#convert-json

MIT 许可证

49KB
692 行 (代码行数,不包括注释)

包状态

crates.io docs.rs License

管道状态

Test pipeline Crates.io deployment pipeline

安装

cargo add json_keyquotes_convert

示例用法

  • 更多信息,请参阅 文档
use json_keyquotes_convert::{JsonKeyQuoteConverter, Quotes};

let json = JsonKeyQuoteConverter::new("{key: \"va\nl\"}", Quotes::default())
	.add_key_quotes().escape_ctrlchars().json();

// JSON string will now be: {\"key\": \"va\\nl\"}
// Raw JSON will now be: {"key": "va\nl"}
使用函数
use json_keyquotes_convert::{json_key_quote_utils, Quotes};

let json_added = json_key_quote_utils::json_add_key_quotes("{key: \"va\nl\"}", Quotes::default());
let json_escaped = json_key_quote_utils::json_escape_ctrlchars(&json_added);

// JSON string will now be: {\"key\": \"va\\nl\"}
// Raw JSON will now be: {"key": "va\nl"}

重要信息

包支持图例

很好 良好 不支持
✔️
自动 可配置 不支持

包支持

** 任何未列出的功能可能不受支持。 **

  • 添加 JSON 键周围的引号
    • 双引号:✔️(默认)
    • 单引号:✅
  • 移除 JSON 键周围的引号
    • 双引号:✔️
    • 单引号:✔️
  • 支持的 JSON 字符串值周围的引号
    • 双引号:✔️
    • 单引号:✔️
  • 支持在 JSON 字符串值中转义控制字符
    • 换行符 (\n):✔️ ✅
    • 制表符 (\t):✔️ ✅
    • 回车符 (\r):✔️ ✅
  • 支持在 JSON 字符串值中取消转义控制字符
    • 换行符 (\n):✔️ ✅
    • 制表符 (\t):✔️ ✅
    • 回车符 (\r):✔️ ✅
  • 支持的 ✔️ JSON 键字符
    • [A-Z] [a-z] [0-9] ` ~ ! @ # $ % € ^ & * ( ) - _ = + \ | ; " ' . < > / ? \r \n \t \f \v <U+0020>(Space)
    • 注意:' 和 " 以及它们的转义变体可能在作为 JSON 键的最后一个字符时被误解为键引号。因此,不建议以这些字符开始或结束 JSON 键。
  • 支持的 ✔️ JSON 值字符
    • [A-Z] [a-z] [0-9] ` ~ ! @ # $ % € ^ & * ( ) - _ = + \ | : ; " ' . < > / ? \r \n \t \f \v <U+0020>(Space)

请注意,此包不检查输出是否为有效 JSON。该包的功能基于正则表达式,并使用 regex 包。

数据格式

类似的数据格式

测试中显示的 JSON 数据格式与 JSON5 和 HJSON 有一些相似之处。遗憾的是,这些数据格式之间的差异足够大,以至于无法由 JSON5 和 HJSON 解析器解析,这就是为什么制作此包的原因。

用法

测试中显示的 JSON 数据格式由以下软件使用

变更日志

贡献

  • 欢迎所有贡献。我将尽力回复所有问题和 PR。
  • 请注意,所有对该软件包的贡献都将使用当前许可证(MIT许可证)提供。

第三方许可证

依赖项

~2.2–3MB
~54K SLoC