WAST 是一个高性能 Java 工具集库包,包括 JSON、YAML、CSV、HttpClient、JDBC 和 EL 引擎.
源码地址
- gitee: https://gitee.com/xiaoch0209/wast
- github: https://github.com/wycst/wast
性能测试:
- gitee: https://gitee.com/xiaoch0209/wast-jmh-test
- github: https://github.com/wycst/wast-jmh-test
- JSON 与 simdjson-java 对比: JSON 性能测试之二 - wastjson 每秒 6GB 解析速度完胜 simdjson-java
- 表达式性能测试: WastEl 表达式引擎性能测试 - 每秒千万次运算超强性能 - OSCHINA - 中文开源技术交流社区
v0.0.22 更新内容:
- JSON支持ndjson;
- JSON修复自定义Map未指定泛型场景下解析空指针bug;
- JSON添加java.time包下面Duration、ZoneId、Period三个类型读写支持;
- JSON基于ascii编码字符串序列化优化(JDK9+);
ndjson解析示例
String json = "{\"key\": 123}\n" +
"{\"key\": 123}\n" +
"{\"key\": 123}\n" +
"{\"key\": 123}\n" +
"{\"key\": 123}";
List results = JSON.parseNdJson(json);
results.add(123);
results.add(456);
System.out.println(JSON.toNdJsonString(results, WriteOption.FormatOut));
System.out.println(results);
JSON.writeNdJsonTo(results, new FileOutputStream("e:/tmp/ndjson.ndjson"), WriteOption.FormatOut);
List list = JSON.parseNdJson(new FileInputStream("e:/tmp/ndjson.ndjson"));
System.out.println(list);
JSON之间有没有分隔符都能解析,不限于规范描述的需要换行符来分割,支持格式化美化输出。