这是本文档旧的修订版!
CodeC
下载方式
使用 cspkg 工具进行下载
在 shell 中使用 cspkg 工具,并使用以下指令
下载 Codec 包
cspkg install codec
简介
CodeC 为解编码扩展包,提供对 Base64 编码译码,Base32 编码译码与 Json 编码译码的支持。
想要使用不同的编码译码工具时,只需使用对应命名空间下的方法即可。
目前 CodeC 包中共有以下命名空间:
由于 CodeC 内容并不多,本页面将会展示全部的 API。
快速开始
import codec.base64.standard as base64 import codec.json as json function to_timestamp(t) 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 function from_timestamp(t) return json.to_var(json.from_string(base64.decode(t))) end
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 值输出至流 |