====== CodeC ====== 目录: * [[:manual:reference:package:extend:codec:main_page#下载方式|下载方式]] * [[:manual:reference:package:extend:codec:main_page#简介|简介]] * [[:manual:reference:package:extend:codec:main_page#快速开始|快速开始]] * [[:manual:reference:package:extend:codec:main_page#Base32 & Base64 编码译码|Base32 & Base64 编码译码编码译码]] * [[:manual:reference:package:extend:codec:main_page#Json 编码译码|Json 编码译码]] ----- \\ ===== 下载方式 ===== ==== 使用 cspkg 工具进行下载 ==== 在 shell 中使用 **cspkg** 工具,并使用以下指令 下载 Codec 包 cspkg install codec ----- \\ ===== 简介 ===== **CodeC** 为解编码扩展包,提供对 **Base64 编码译码**,**Base32 编码译码**与** Json 编码译码**的支持。\\ 想要使用不同的编码译码工具时,只需使用对应命名空间下的方法即可。\\ 目前 **CodeC** 包中共有以下命名空间: ^ 命名空间 ^ | [[:manual:reference:package:extend:codec:main_page#Base32 & Base64 编码译码|base32]] | | [[:manual:reference:package:extend:codec:main_page#Base32 & Base64 编码译码|base64]] | | [[:manual:reference:package:extend:codec:main_page#Json 编码译码|json]] | 由于 **CodeC** 内容并不多,本页面将会展示全部的 API。 ----- \\ ===== 快速开始 ===== import codec.base64.standard as base64 import codec.json as json function to_timestamp(t) @begin return base64.encode(json.to_string(json.from_var({ "year": t.year, "day" : t.yday, "hour": t.hour, "min" : t.min }.to_hash_map()))) @end end function from_timestamp(t) return json.to_var(json.from_string(base64.decode(t))) end var str = to_timestamp(runtime.local_time()) var obj = from_timestamp(str) system.out.println(to_string(1900 + obj.year) + "年" + obj.day + "日" + obj.hour + "时" + obj.min + "分") system.out.println(str) [[http://dev.covariant.cn/index.html?page=manual:reference:package:extend:codec:code_0|在线查看效果]] ===== Base32 & Base64 编码译码 ===== **Base32** 和 **Base64** 拥有不同的命名空间,意为选用不同的编码译码器: ^命名空间 ^描述 ^ || |**Base32 译码方式** || |''standard'' |标准编码译码器(RFC4648) | |''rfc4648'' |RFC4648 编码译码器 | |''crockford'' |Crockford 编码译码器 | |''hex'' |二进制编码译码器 | || |**Base64 译码方式** || |''standard'' |标准编码译码器(RFC4648) | |''rfc4648'' |RFC4648 编码译码器 | |''url'' |为链接优化的 RFC4648 编码译码器 | |''url_unpadded'' |为链接优化的 RFC4648 编码译码器,无对齐符号 = | 在以上所有命名空间内,**Base32** 与 **Base64** 都拥有编码与解码方法: ^方法 ^描述 ^ |string **encode**([codec], string) |编码 | |string **decode**([codec], string) |解码 | ----- \\ ===== Json 编码译码 ===== **CovScript 类型**与 **Json 类型**对应如下: ^CovScript 类型 ^Json 类型 ^ |''null'' |**null** | |''number'' |**real** | |''string'' |**string** | |''boolean'' |**boolean** | |''array'' |**array** | |''hash_map'' |**object** | \\ 命名空间 ''json'' 下有如下方法: ^方法 ^描述 ^ |[json] **from_string**(string) |从字符串新建 Json 值 | |[json] **from_stream**([istream]) |从流新建 Json 值 | |[json] **from_var**(var) |从 CovScript 变量新建 Json 值 | |string **to_string**([json]) |将 Json 值转换为字符串 | |var **to_var**([json]) |将 Json 值转换为 CovScript 变量 | |[json] **make_null**() |创建空值 | |[json] **make_array**() |创建数组 | |[json] **make_object**() |创建对象 | |[json] **make_int**(number val) |创建整数 | |[json] **make_uint**(number val) |创建无符号整数 | |[json] **make_real**(number val) |创建浮点数 | |[json] **make_string**(string str) |创建字符串 | |[json] **make_boolean**(boolean val) |创建布尔值 | |number **as_int**([json]) |获取整数 | |number **as_uint**([json]) |获取无符号整数 | |number **as_real**([json]) |获取浮点数 | |string **as_string**([json]) |获取字符串 | |boolean **as_boolean**([json]) |获取布尔值 | |boolean **is_int**([json]) |判断是否为整数 | |boolean **is_uint**([json]) |判断是否为无符号整数 | |boolean **is_real**([json]) |判断是否为浮点数 | |boolean **is_null**([json]) |判断是否为空值 | |boolean **is_array**([json]) |判断是否为数组 | |boolean **is_object**([json]) |判断是否为对象 | |boolean **is_number**([json]) |判断是否为数字 | |boolean **is_string**([json]) |判断是否为字符串 | |boolean **is_boolean**([json]) |判断是否为布尔值 | |number **arr_size**([json]) |获取数组大小 | |boolean **arr_empty**([json]) |判断数组是否为空 | |void **arr_clear**([json]) |清空数组 | |void **arr_resize**([json]) |调整数组大小,多余填充空值 | |[json] **arr_append**([json] this, [json] value) |在尾部添加新值 | |[json] **arr_get**([json], number) |获取指定下标的值 | |void **arr_set**([json], number idx, [json] value) |设置指定下标的值 | |[json] **get_member**([json] this, string key) |获取对象成员 | |[json] **set_member**([json] this, string key, [json] value) |设置对象成员 | |boolean **has_member**([json] this, string key) |判断是否存在成员 | |array **get_member_names**([json]) |获取成员名称列表 | |void **to_stream**([json] this, [ostream] os) |将 Json 值输出至流| ----- \\