fastjson2/docs/design_jsonreader.md

23 lines
857 B
Markdown
Raw Permalink Normal View History

2022-08-27 03:51:25 +08:00
JSONReader是fastjson2读取JSON数据的底层实现为了方便不同的输入分别提供了如下实现
* JSONReaderUTF16 用于处理输入为char[]的输入在JDK8下 String会转成char[]使用JSONReaderUTF16实现在JDK 9或者更高版本如果coder=1也是会使用这个实现。
* JSONReaderUTF8 用于处理输入为utf8编码的byte[]
* JSONReaderASCII是JSONReaderUTF8的派生类用于处理JDK 9之后coder=0的优化
* JSONReaderJSONB 如果输入是jsonb格式数据时使用JSONReaderJSONB实现通过相同的API实现两套协议一套API
```java
class JSONReader { }
class JSONReaderUTF16 extends JSONReader {
char[] chars;
}
class JSONReaderUTF8 extends JSONReader {
byte[] bytes;
}
class JSONReaderASCII extends JSONReaderUTF8 { }
class JSONReaderJSONB extends JSONReader {}
```