5个版本

0.2.0 2024年3月23日
0.2.0-alpha.22023年11月13日
0.2.0-alpha.12023年9月23日
0.1.1 2021年7月27日
0.1.0 2021年5月30日

#209编码

Download history 518/week @ 2024-04-04 419/week @ 2024-04-11 426/week @ 2024-04-18 506/week @ 2024-04-25 601/week @ 2024-05-02 338/week @ 2024-05-09 579/week @ 2024-05-16 539/week @ 2024-05-23 534/week @ 2024-05-30 509/week @ 2024-06-06 696/week @ 2024-06-13 549/week @ 2024-06-20 780/week @ 2024-06-27 493/week @ 2024-07-04 705/week @ 2024-07-11 526/week @ 2024-07-18

2,573 每月下载量
31 个crate中使用 (5 直接)

MIT/Apache

63KB
1.5K SLoC

JSON流解析器

actions status Latest Version Released API docs

JSON事件解析器是在Rust中实现的简单流式JSON解析器和序列化器。

它并不旨在成为最快的JSON解析器,而是一个简单的实现。

如果您需要快速且经过实战检验的代码,您可能更喜欢使用 jsonserde_jsonsimd-json

读取器示例

use json_event_parser::{FromReadJsonReader, JsonEvent};

let json = b"{\"foo\": 1}";
let mut reader = FromReadJsonReader::new(json.as_slice());
assert_eq!(reader.read_next_event()?, JsonEvent::StartObject);
assert_eq!(reader.read_next_event()?, JsonEvent::ObjectKey("foo".into()));
assert_eq!(reader.read_next_event()?, JsonEvent::Number("1".into()));
assert_eq!(reader.read_next_event()?, JsonEvent::EndObject);
assert_eq!(reader.read_next_event()?, JsonEvent::Eof);
# std::io::Result::Ok(())

写入器示例

use json_event_parser::{ToWriteJsonWriter, JsonEvent};

let mut writer = ToWriteJsonWriter::new(Vec::new());
writer.write_event(JsonEvent::StartObject)?;
writer.write_event(JsonEvent::ObjectKey("foo".into()))?;
writer.write_event(JsonEvent::Number("1".into()))?;
writer.write_event(JsonEvent::EndObject)?;

assert_eq!(writer.finish()?.as_slice(), b"{\"foo\":1}");
# std::io::Result::Ok(())

许可证

本项目许可协议为以下之一:

  • Apache License, Version 2.0, (LICENSE-APACHE<http://www.apache.org/licenses/LICENSE-2.0>)
  • MIT许可证 (LICENSE-MIT<http://opensource.org/licenses/MIT>)

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的您提交给json-event-parser的任何有意贡献都将按照上述协议双重许可,不附加任何额外条款或条件。

依赖关系

~0–1.2MB
~20K SLoC