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
49KB
692 行 (代码行数,不包括注释)
包状态
管道状态
安装
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 键。
- [A-Z] [a-z] [0-9] ` ~ ! @ # $ % € ^ & * ( ) - _ = + \ | ; " ' . < > / ? \r \n \t \f \v
- 支持的 ✔️ JSON 值字符
- [A-Z] [a-z] [0-9] ` ~ ! @ # $ % € ^ & * ( ) - _ = + \ | : ; " ' . < > / ? \r \n \t \f \v
<U+0020>(Space)
- [A-Z] [a-z] [0-9] ` ~ ! @ # $ % € ^ & * ( ) - _ = + \ | : ; " ' . < > / ? \r \n \t \f \v
请注意,此包不检查输出是否为有效 JSON。该包的功能基于正则表达式,并使用 regex 包。
数据格式
类似的数据格式
测试中显示的 JSON 数据格式与 JSON5 和 HJSON 有一些相似之处。遗憾的是,这些数据格式之间的差异足够大,以至于无法由 JSON5 和 HJSON 解析器解析,这就是为什么制作此包的原因。
用法
测试中显示的 JSON 数据格式由以下软件使用
变更日志
- 请参阅 变更日志。
贡献
- 欢迎所有贡献。我将尽力回复所有问题和 PR。
- 请注意,所有对该软件包的贡献都将使用当前许可证(MIT许可证)提供。
第三方许可证
-
正则表达式:版权所有(c)2014 Rust项目开发者。根据MIT许可证授权,详细信息请参阅LICENSES.MIT。通知可以在Regex-NOTICE找到。网站:https://github.com/rust-lang/regex。
-
once_cell:根据MIT许可证授权,详细信息请参阅LICENSES.MIT。网站:https://github.com/matklad/once_cell。
依赖项
~2.2–3MB
~54K SLoC