众所周知,JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率,也是众多游戏保存存档的选择。
那么,该如何使用GameMaker来导入JSON文件呢?
注意:在观看此文章前,你需要了解JSON的相关知识。
首先,让我们来看看JSON的两种码风:
{
"key":"value",
"key2":0,
"json":{
"key3":"value2",
"key4":1
},
"json2":{
"key5":"value3",
"key6":"2"
}
}{"key":"value","key2":0,"json":{"key3":"value2","key4":1},"json2":{"key5":"value3","key6":"2"}}以上这两种码风都可以被一个脚本导入,让我们来看看怎么做。(注:你需要将JSON文件放入GameMaker工程的外部文件里。)
新建一个GML语言的GameMaker项目,再新建一个脚本,叫他Json_Load,之后把这个脚本内的代码删除,然后再写入如下两种中任意一种代码。
///@arg file
function Json_Load(){
var file=argument[0];
}function Json_Load(file){
}在之后,我们往function体内写入如下代码:
var JSON=file_text_open_read(file);
var json_str="";这串代码将会打开我们调用函数时所填入的JSON文件的路径,并将其id存入本地变量JSON里,再创建一个本地变量json_str,并为其赋值空string,用于存储读写到的JSON文件中的字符。
打开JSON文件之后,我们就可以正式开始读写了。
while(!file_text_eof(JSON)){ //如果没有到达JSON文件的末尾,则继续读取。
json_str+=file_text_read_string(JSON);//以String格式获取文件本行字符。
file_text_readln(JSON);//读取文件的下一行。
}
file_text_close(JSON);//读取完毕,关闭文件。在读写完之后,我们就获得了一个合法的JsonString,接着,我们将要把它转换成GameMaker中的map并返回,以进行读取。
return json_decode(str);//利用GameMaker的函数将合法的JsonString转换为ds_map并返回这一切完成之后,我们就完成了对JSON外部文件的读写脚本,你不妨测试一下,如有BUG,可联系我修改。
版权声明:本文为Charlie_offcial原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。