Pixel-Composer/scripts/json_file/json_file.gml

53 lines
1 KiB
Text
Raw Normal View History

2023-02-14 11:32:32 +07:00
function json_encode_minify(map) {
2023-11-13 13:11:52 +07:00
gml_pragma("forceinline");
2023-02-14 11:32:32 +07:00
return json_minify(json_encode(map));
}
function json_stringify_minify(map) {
2023-11-13 13:11:52 +07:00
gml_pragma("forceinline");
2023-02-14 11:32:32 +07:00
return json_minify(json_stringify(map));
}
2022-12-10 11:06:01 +07:00
function json_load(path) {
2023-11-13 13:11:52 +07:00
gml_pragma("forceinline");
2023-12-08 09:50:09 +07:00
if(!file_exists_empty(path)) return noone;
2022-12-10 11:06:01 +07:00
2023-11-13 13:11:52 +07:00
var s = file_read_all(path);
2022-12-10 11:06:01 +07:00
var js = json_decode(s);
return js;
}
2023-02-14 11:32:32 +07:00
function json_save(path, map) {
2023-11-13 13:11:52 +07:00
gml_pragma("forceinline");
2023-02-14 11:32:32 +07:00
var s = json_encode_minify(map);
2022-12-10 11:06:01 +07:00
2023-01-04 08:30:04 +07:00
var f = file_text_open_write(path);
file_text_write_string(f, s);
file_text_close(f);
}
function json_load_struct(path) {
2023-11-13 13:11:52 +07:00
gml_pragma("forceinline");
2023-12-08 09:50:09 +07:00
if(!file_exists_empty(path)) return noone;
2023-01-04 08:30:04 +07:00
var s = file_read_all(path);
2023-03-05 13:16:44 +07:00
var js = json_try_parse(s);
2023-01-04 08:30:04 +07:00
return js;
}
2023-03-05 13:16:44 +07:00
function json_save_struct(path, struct, pretty = false) {
2023-11-13 13:11:52 +07:00
gml_pragma("forceinline");
2023-03-05 13:16:44 +07:00
var s;
if(pretty) s = json_stringify(struct, true);
else s = json_stringify_minify(struct);
2023-01-04 08:30:04 +07:00
2022-12-10 11:06:01 +07:00
var f = file_text_open_write(path);
file_text_write_string(f, s);
file_text_close(f);
}