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解析器实现

Download history 21/week @ 2024-03-16 5/week @ 2024-03-23 21/week @ 2024-03-30 6/week @ 2024-04-06 5/week @ 2024-04-13 12/week @ 2024-04-20 10/week @ 2024-04-27 52/week @ 2024-05-04 12/week @ 2024-05-11 5/week @ 2024-05-18 11/week @ 2024-05-25 11/week @ 2024-06-01 7/week @ 2024-06-08 71/week @ 2024-06-15 51/week @ 2024-06-22 2/week @ 2024-06-29

133 每月下载量
2 个crate中(通过 libflatterer)使用

Apache-2.0

45KB
916

Yajlish - Rust事件驱动JSON解析器

当你不知道JSON的确切结构且不能将其全部加载到内存中时,编写解析json的工具。

  • 基于yajl进行松散的构建
  • 包含具有“ndjson”功能的JSON -> ndjson转换器

boydjohnson

文档

你可能需要代替此库的库

用法

假设你想要解析所有名为'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