fastjson2/docs/design_jsonreader.md
2022-08-27 03:51:29 +08:00

857 B
Raw Permalink Blame History

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
class JSONReader { }

class JSONReaderUTF16 extends JSONReader {
    char[] chars;
}

class JSONReaderUTF8 extends JSONReader {
    byte[] bytes;
}

class JSONReaderASCII extends JSONReaderUTF8 { }

class JSONReaderJSONB extends JSONReader {}