CHO.Json:
- 现在,CHO.Json已经成为了一个强大的Json解析库,速度很快。
 - 支持弱类型操作, JsonData实现了所有Json数据类型的基本操作, 支持像 Python 那样的操作方式
 - 支持强类型操作, JsonData可以直接通过 ‘Get类型’ 方法来获取对应数据类型数据并进行操作
 - 支持序列化, 反序列化, 一次分析多个Json数据:
 
- 序列化和反序列化则是所有库都有的功能
 - 一次性序列化多个Json数据则是,允许一段文本中含有多个Json根数据,它可以用于解决TCP套接字的粘包问题
 
- CHO.Json 拥有教快的分析速度,能够完全与Json.Net与Text.Json匹敌,并且它的加载速度时三者中最快的。
 
这是它与Newtonsoft.Json的差别:
- CHO.Json少了许多冗余的功能, 例如将图片序列化为字符串, 因此CHO.Json可能要比Newtonsoft.Json轻量许多。
 - CHO.Json的源代码比Newtonsoft.Json更适合初学者阅读, 在看懂它的代码后, 你会了解到有限状态机以及反射
 - CHO.Json仅使用一个C#源文件, 这是因为它的源代码仅有1.5k行左右, 这其中还包含类型转换等片段
 
更详细的介绍:
- 首先, 在 CHO.Json 中, 包含一个 JsonData 类, 它可以用来表示任何 Json 数据, 通过 JsonData 类的静态方法, 可以从字符串或字符数组中分析出 Json 数据并存储到 JsonData 实例中, 或者将 JsonData 实例转化为 Json 字符串.
 - JsonData 是你最常用的类, 有一个 DataType 属性指定了这个实例所表示的 Json 数据类型, 例如String, Boolean, Integer, 通过 ‘Get类型’ 方法可以直接获取对应数据, 例如: GetString() 方法返回这个Json实例中所包含的字符串信息. 但如果你对一个包含了非字符串信息的 JsonData 实例使用这个方法, 则会抛出异常.
 - 在最新版本的 CHO.Json 中, Serializie(序列化)和Deserialize(反序列化)用于直接转换字符串和指定的数据. 但在旧版, 则是转换 JsonData. 新版中, 推荐的方法是使用 JsonData 的静态方法: Parse, Create, ConvertToInstance, ConvertToText.
 - 如果一个字符串里包含多个Json数据, 但并没有分隔符, 例如在TCP套接字中传输的多个Json文本, 你可以通过JsonData的静态方法 ParseStream 来分析它们.
 - JsonData 的 Content 属性是 JsonData 包含的数据原型, 如果是Array, 则它的类型是List<JsonData>, 如果是Object, 则它的类型是 Dictionary<JsonData, JsonData>
 
下面是使用CHO.Json的例子:
![使用套接字发送经过CHO.Json转换过的信息 [C#] CHO.Json操作Json数据_字符串](https://file.cfanz.cn/uploads/png/2023/04/10/6/4b6b7M374A.png)
项目完整源代码: Github仓库
                










