ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
每个支持的值被转换为一个不同前缀字符、后跟需要的数据。 * null: n * Int: 0为z,或者 i 后跟整数显示(例如 i456) * Float: * NaN :k * 负无穷 :m * 正无穷 :p * 有限的浮点数 : d 后跟浮点数显示(如d1.45e-8) * Bool :true 为 t,false 为 f * String: y 后跟url编码的字符串长度,然后是冒号 : 和url编码(如 y10:hi%20there,“hi there”) * 名称-值 对: 一个序列化的字符串表示名称后跟序列化的值 * 结构: o 后跟 名称-值对的列表,以g 终止?(例如,oy1:xi2y1:kng,{x:2, k:null}) * List: l 后跟序列化的项的列表,后跟h(例如,lnnh ,两个null值的 List) * Array: a 后跟序列化的项的列表,后跟h。对于多个连续的 null 值, 使用u 后跟null的数量(例如 ai1i2u4i7ni9h ,[1, 2, null, null, null, null, 7, null, 9]) * Date: v 后跟 date 自己(例如 v2010-01-01 12:45:10) * haxe.ds.StringMap: b 后跟 名-值对,后跟 h(例如,by1:xi2y1:knh,{"x"=> 2, "k"=> null}) * haxe.ds.IntMap: q 后跟键值对,后跟h。每个键表示为 :<int>(例如,q:4n:5i45:6i7h ,{4=>null, 5=> 45, 6=>7}) * haxe.ds.ObjectMap: M 后跟序列化的值对表示键跟值,后跟h * haxe.io.Bytes: s 后跟 base64编码字节长度,然后冒号 : ,和A-Za-z0-9% 表示的字节码(例如,s3:AAA ,等于0的2字节,s10:SGVsbG8gIQ ,haxe.io.Bytes.ofString("Hello !")) * exception: x 后跟异常值 * 类实例: c 后跟序列化的类名,后跟字段的名-值对,后跟g(例如,cy5:Pointy1:xzy1:yzg ,new Point(0, 0))(有两个整数字段 x 和 y) * 枚举实例 (通过名称): w 后跟序列化的枚举名称,后跟序列化的构造函数名,后跟冒号 : ,后跟参数的数量,后跟参数的值(例如,wy3:Fooy1:A:0 ,Foo.A (无参数),wy3:Fooy1:B:2i4n ,Foo.B(4, null)) * 枚举实例(通过索引): j 后跟序列化的枚举名称,后跟冒号 : ,后跟构造函数的索引(从0开始),后跟冒号 :, 后跟参数的数量,后跟参数的值(例如,jy3:Foo:0:0 , Foo.A (无参数), jy3:Foo:1:2i4n ,Foo.B(4, null)) * 缓存引用: * String: R 后跟在字符串缓存中相应的索引(例如,R456) * class, enum 或 structure : r 后跟对象缓存中的相应索引(如,r42) * 自定义: C 后跟类名,后跟自定义序列化数据,后跟 g 缓存的元素和枚举构造函数从0开始索引。