11次发布
0.4.0 | 2021年10月11日 |
---|---|
0.3.2 | 2021年1月2日 |
0.3.1 | 2020年12月28日 |
0.2.0 | 2020年12月22日 |
0.1.1 | 2020年8月12日 |
#2486 在 解析器实现
133 每月下载量
在 2 个crate中(通过 libflatterer)使用
45KB
916 行
Yajlish - Rust事件驱动JSON解析器
当你不知道JSON的确切结构且不能将其全部加载到内存中时,编写解析json的工具。
- 基于yajl进行松散的构建
- 包含具有“ndjson”功能的JSON -> ndjson转换器
你可能需要代替此库的库
用法
假设你想要解析所有名为'foo'的JSON对象键的数量。
use yajlish::{Context, Handler, Status};
pub struct FooCountHandler {
count: usize,
}
impl Handler for FooCountHandler {
fn handle_map_key(&mut self, _ctx: &Context, key: &str) -> Status {
if key == "\"foo\"" {
self.count += 1;
}
Status::Continue
}
fn handle_null(&mut self, _ctx: &Context) -> Status {
Status::Continue
}
fn handle_bool(&mut self, _ctx: &Context, boolean: bool) -> Status {
Status::Continue
}
fn handle_double(&mut self, _ctx: &Context, val: f64) -> Status {
Status::Continue
}
fn handle_int(&mut self, _ctx: &Context, val: i64) -> Status {
Status::Continue
}
fn handle_string(&mut self, _ctx: &Context, val: &str) -> Status {
Status::Continue
}
fn handle_start_map(&mut self, _ctx: &Context) -> Status {
Status::Continue
}
fn handle_start_array(&mut self, _ctx: &Context) -> Status {
Status::Continue
}
fn handle_end_map(&mut self, _ctx: &Context) -> Status {
Status::Continue
}
fn handle_end_array(&mut self, _ctx: &Context) -> Status {
Status::Continue
}
}
许可证
此库受Apache 2.0许可证的许可。
依赖项
~0–1MB