跳到主要内容

json5

简介

json 序列化和反序列 使用开源库cjson, 来序列化和反序列化 gs 中的基本数据类型 与 gs 内置的 json 模块相比,

优点:

  • pkg 更加符合规范
  • 可以输出可读性字符串

缺点:

  • 不能读取带注释的 json 文件

组件接口

json5.gs

函数原型函数作用
bool check(string str)检查传入的字符串是否是json格式的
mixed loads(string str)将传入字符串反序列为 json 数据格式
mixed load(string path)根据文件路径, 读取文件内容, 并反序列化 json 数据格式
string dumps(mixed val, bool minify = false)将 gs 基本数据结构(map, array, string, int) 以 json 的形式序列化为字符串
void dump(mixed val, string path, bool minify = false)将 gs 基本数据结构(map, array, string, int) 以 json 的形式序列化为字符串, 并保存到文件

样例

// 测试写 json
public mixed write_file(mixed val)
{
json5.dump(val, "./__testjson5.json");
defer file.delete("./__testjson5.json");
return json5.load("./__testjson5.json");
}

// 测试读取 json 文件
// 从pkg中读取 name, 判断器是是 @g-bits/cjson
public string read_file()
{
string path = __DIR__ + "../package.json";
map p = json5.load(path);
return p.name;
}