众所周知,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,可联系我修改。

GameMaker如何导入JSON文件相关推荐

  1. Hive导入json文件

    现有一json文件,需要导入hive,如何操作? 比如json内容如下 {"uid":"1","uname":"gaoyuanyu ...

  2. 微信小程序云开发——常用功能2:操作云数据库一键批量导入数据(导入json文件)

    微信小程序云开发--常用功能2:操作云数据库一键批量导入数据(导入json文件) 今天我们要添加100条数据.下面的过程是先创建一条记录,然后导出这条数据看json文件中是如何编辑字段的,然后仿照这个 ...

  3. import引入json文件_在React组件中导入Json文件

    我正在尝试在React组件中加载languages.json文件.当我想导入json文件时,我在第一步收到以下错误.这是错误: ERROR in ./app/languages.json Module ...

  4. 在PowerBI中导入JSON文件

    某应用程序,用于管理其仓库中产品的发运和跟踪,该仓库将 NoSQL 数据库 CosmosDB 用作数据存储库.  此应用程序使用 Cosmos DB 存储 JSON 文档,这些文档采用公开的标准文件格 ...

  5. Neo4j Desktop通过apoc 导入json文件

    Neo4j Desktop通过apoc 导入json文件 一.Apoc 安装(github) 1.安装 2.查看文件夹 3.修改neo4j.conf apoc.import.file.enabled= ...

  6. php导入json文件_[php]导入超大json文件

    前言 在之前的文章<做一个twitter的插件玩玩>中,我做了一个批量删除推文(转发推文)的工具,该工具能够删除前3200条推文,但因为总数太多(4.3万条),api接口不支持获取所有的推 ...

  7. cratedb导入json文件

    环境: OS:centos 7 db:3.2.0 1.准备数据文件 myuser.json文件内容如下: {"id": 1, "name": "foo ...

  8. mysql批量导入json_微信小程序云开发---数据库批量导入json文件

    马上大学毕业了,于是最近做了一个关于班级信息的微信小程序,主要记录一些班级活动的照片.同学的通讯录...... 主要使用了微信小程序的云开发平台,因为班级同学的信息,班长都会有Excel表格统计的信息 ...

  9. 微信小程序云开发---数据库批量导入json文件

    马上大学毕业了,于是最近做了一个关于班级信息的微信小程序,主要记录一些班级活动的照片.同学的通讯录...... 主要使用了微信小程序的云开发平台,因为班级同学的信息,班长都会有Excel表格统计的信息 ...

最新文章

  1. 电影天堂React Native 客户端
  2. MySQL的用户和权限介绍
  3. 查询v$lock缓慢和direct path write temp等待
  4. mysql自动挂载存储_Linux开机自动挂载存储
  5. 【Android 异步操作】手写 Handler ( 总结 | Message | MessageQueue | Looper | Handler ) ★
  6. Binary Watch二进制时间
  7. Java 洛谷 P1425 小鱼的游泳时间
  8. VTK:突出坏细胞用法实战
  9. 设计模式之工厂模式(下篇)
  10. SAP BSP应用有状态和无状态行为差异比较
  11. #if, #ifdef, #ifndef, #else, #elif, #endif的用法
  12. cocos2dx 3.x 解决输入框(TextField,TextFieldTTF) 输入中文变乱码的问题
  13. 从Graalvm性能测试结果看选择JVM和native-image的策略
  14. slf4j + log4j原理实现及源码分析
  15. i9 9900k mysql_i9-9900K性能如何 CPU天梯图秒懂i9-9900K性能排行
  16. python开发erp系统odoo_odooERP系统(框架)总结
  17. 服务器密码忘记处理之二:重置密码
  18. 冯诺依曼计算机硬件系统,冯·诺依曼型计算机硬件组成
  19. 执行SOA——SOA实践指南
  20. 华为云全流程护航《流浪方舟》破竹首发,打造口碑爆款

热门文章

  1. 开发用台式机还是笔记本_您应该开发台式机还是Web应用程序?
  2. python读取Excel绘制饼图的两种方式
  3. 孟庆国:未来政府数字化转型——从“技术釆纳”到“价值赋能”
  4. springboot+阿里云短信 找不到本地包 解决
  5. 微信引流推广:美拍视频简单的引流方法分享
  6. java 多线程 数据重复,java 多线程 出现数据重复调用有关问题
  7. python进行数据查询_使用Python实现NBA球员数据查询小程序功能
  8. 隐私计算:数据脱敏、匿名化、假名化、差分隐私和同态加密
  9. shell中base64编解码的使用
  10. 北京大学医疗科技风论文答辩PPT模板