CodeC

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

下载 Codec 包

cspkg install codec


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

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

命名空间
base32
base64
json

由于 CodeC 内容并不多,本页面将会展示全部的 API。



codec_example_1.csc
  1. import codec.base64.standard as base64
  2. import codec.json as json
  3.  
  4. function to_timestamp(t)
  5. @begin
  6. return base64.encode(json.to_string(json.from_var({
  7. "year": t.year,
  8. "day" : t.yday,
  9. "hour": t.hour,
  10. "min" : t.min
  11. }.to_hash_map())))
  12. @end
  13. end
  14.  
  15. function from_timestamp(t)
  16. return json.to_var(json.from_string(base64.decode(t)))
  17. end
  18.  
  19. var str = to_timestamp(runtime.local_time())
  20. var obj = from_timestamp(str)
  21.  
  22. system.out.println(to_string(1900 + obj.year) + "年" + obj.day + "日" + obj.hour + "时" + obj.min + "分")
  23. system.out.println(str)

在线查看效果

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