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