4个版本
| 0.3.1 | 2018年12月6日 |
|---|---|
| 0.3.0 | 2018年11月29日 |
| 0.2.1 | 2018年11月29日 |
| 0.2.0 | 2018年11月29日 |
#136 in #json-parser
每月1,363次下载
12KB
316 行
rjson : Rust的最小json解析器
- 包含单个独立文件
lib.rs,完成所有工作。 - 在调用
parse之前,使用自己的结构体实现特型。 - 简单的实现可以是,为
Value使用enum,相同的enum用于Null,Vec用于Array和BTreeMap用于Object。 - 它只需要
core和alloc,不需要其他任何东西,包括std。 - 在
no_std环境中,它需要一个全局分配器才能工作。
提示
- 我们在数组和对象的最后一个项目/成员后允许使用逗号
,。 - 我们将未转义的换行符视为普通字符,并忽略转义的换行符。
- 我们不支持代理Unicode字符。
- 我们使用
f64来表示所有数字,但您也可以使用其他类型。注意:f64表示i52。 - 我们使用
&[char],而不是&[u8],也不是&str。 - 没有
stringify或encode,因为它们不应成为特型的部分。 - 我们不返回
None,而是简单地忽略数据后的字符。 - 数据结束的位置通过
index返回。您可以将它与len() - 1进行比较。 - 此值在返回
Option::None时也很有用,通过指示语法错误发生的位置。 parse可能返回所有可能的值,而不仅仅是Array和Object。