JSON是6Spring同学介绍给我的好物,官方定义如下:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition – December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。

嗯,没全部读完的请举手。好,手放下。对于咱策划来说,其实只需要读第一句的主干:JSON是格式。(抽飞)

JSON这种格式,以{}符号作为一个组,其中的数据以“名称:数据”的方式呈现,文本则加双引号。举个例子来说,对于一个物品的各种属性,我们可以用JSON表示为:

{“ItmeID”:3101, “Name”:”大还丹”, “Value”:350}

很简单吧,JSON还支持嵌套,比如:

{“3101″:{“ItmeID”:3101, “Name”:”大还丹”, “Value”:350},

“3202″:{“ItmeID”:3202, “Name”:”小还丹”, “Value”:150}}

这就是以物品ID为索引的一张二维物品表了啊~~

那么对于策划来说,把数值表变成这种样子有什么好处呢?嘿嘿,因为JSON4Lua这个项目提供了一套函数,你只要给他JSON格式的一串文本,他就给你转换成Lua的Table。比如:

jsonStr={“ItmeID”:3101, “Name”:”大还丹”, “Value”:350}

tableCache={}

tableCache=json.decode(jsonStr)

执行上述Lua语句以后,tableCache在Lua里就变成了[3101,"大还丹",350]。脚本策划就无需自己写函数解析数值策划提供的各种数值表了(虽然可能是同一个人),只要程序帮忙提供一个导出JSON格式的函数,脚本策划直接利用这个函数将原始数据转换成JSON格式再decode成Lua的Table,再然后就是脚本策划自己发挥了。

给出一个实例,是JSON+Lua实现的宝箱系统,因为需要LoadTXT(),也就是我们伟大的程序6Spring给的将TXT文本内容转换成JSON格式的函数,所以如果各位想在Lua下运行通过的话必须自己写下这个函数。当然,你也可以直接返回一串JSON字符串完事。

说一下各个文件和基本思路:

commFunc.lua – 放着一些venjet常用的通用函数,各位可自取。其中第一个就是读取一个文本,利用程序给的函数转换成JSON,再利用JSON的decode函数转换成Lua Table。

GoldBox.lua – 开宝箱的函数,其实与这次题目相关的就前几行,调用commFunc里的函数获得宝箱和物品的Lua Table,后面的都是各种判断和随机选择。

GoldBox.txt和itemkind.txt – 数据文本,为了方便大家理解放了进来,是利用excel导出的文本,所以格式有点乱。

json.lua – JSON4Lua的Lua文件,大家也可以去官网下载。

实例下载>>