14个版本
使用旧Rust 2015
0.5.2 | 2018年4月29日 |
---|---|
0.5.1 | 2017年12月18日 |
0.5.0 | 2017年1月15日 |
0.3.4 | 2016年11月25日 |
0.3.1 | 2016年7月4日 |
#61 in #string-literal
74 每月下载
在 4 crates 中使用
15KB
217 代码行数(不含注释)
json_str
文档和示例
使用 json_str
进行标准化的JSON字面量
let json = json_str!({
query: {
query_string: {
query: "*"
}
});
使用 json_fn
进行支持变量替换的标准化的JSON
let get_json = json_fn!(|qry| {
query: {
query_string: {
query: $qry
}
});
let json = get_json("\"some value\"");
还可以参考 serde_json
中的 json
宏。如果您正在构建复杂或动态的结构,尤其是在 stable
上,这将是一个更好的方法。
详情
此crate是构建Rust在stable
和nightly
通道上的json字符串的一种便捷方式。Rust具有类似于json的语法来定义结构,因此很容易将一些有效的Rust令牌树转换为json。此crate在构建String
时还会精简空白并标准化引号。
在stable
上,转换由一个简单的宏提供。在nightly
上,转换由一个在编译时而不是运行时对输入进行清理的编译器插件提供。nightly
通道还提供了一个创建&str
字面量而不是String
的替代插件,以避免这种分配。
不要相信用户输入!
json_fn
不打算与原始用户输入一起使用。值以原样插入,不进行清理或转义。解析(它也没有设计成安全,它期望信任的输入,因为它直接来自应用程序的二进制文件)在替换任何值之前运行。请确保您适当地验证了您的输入!