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
。