这是本文档旧的修订版!


CodeC

在 shell 中使用 cspkg 工具,并使用以下指令

下载 Codec 包

cspkg install codec


CodeC 为解编码扩展包,提供对 Base64 编码译码Base32 编码译码 Json 编码译码的支持。
想要使用不同的编码译码工具时,只需使用对应命名空间下的方法即可。

目前 CodeC 包中共有以下命名空间:

命名空间
base32
base64
json

由于 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

Base32Base64 拥有不同的命名空间,意为选用不同的编码译码器:

命名空间 描述
Base32 译码方式
standard 标准编码译码器(RFC4648)
rfc4648 RFC4648 编码译码器
crockford Crockford 编码译码器
hex 二进制编码译码器
Base64 译码方式
standard 标准编码译码器(RFC4648)
rfc4648 RFC4648 编码译码器
url 为链接优化的 RFC4648 编码译码器
url_unpadded 为链接优化的 RFC4648 编码译码器,无对齐符号 =

在以上所有命名空间内,Base32Base64 都拥有编码与解码方法:

方法 描述
string encode([codec], string) 编码
string decode([codec], string) 解码


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 值输出至流