# Yajlish - Rust event-based JSON parser Write tools to parse json when you don't know its exact structure **and** can't load it all into memory. - based loosely on [yajl](https://github.com/yajl/yajl) - includes a JSON -> ndjson converter with the feature "ndjson" [![boydjohnson](https://circleci.com/gh/boydjohnson/yajlish/tree/master.svg?style=shield)](https://circleci.com/gh/boydjohnson/yajlish/tree/master) [Docs](https://docs.rs/yajlish) ### Libraries you probably need instead of this library - [rust-json](https://crates.io/crates/json) - [serde_json](https://crates.io/crates/serde_json) ### Usage Suppose you wanted to parse the count of all JSON object keys that are named 'foo'. ```rust 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 } } ``` # License This library is licensed under the Apache 2.0 License.