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;
}