Luat开源硬件

Luat实例教程:json

2018-03-23  本文已影响24人  Luat物联网通信模块

本示例实现的功能是:json编解码测试demo项目

1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己随便取名)

2.设置本文件被全体可见。也就意味着,一旦test被某一文件加载,则test在任何文件中均可被看见,即test中全局变量和函数均可被任何文件调用。

module(...,package.seeall)

3.编写需要encode的table变量torigin和需要decode的字符串变量origin

local torigin =
{
    KEY1 = "VALUE1",
    KEY2 = "VALUE2",
    KEY3 = "VALUE3",
    KEY4 = "VALUE4",
    KEY5 = {KEY5_1="VALU5_1",KEY5_2="VALU5_2"},
    KEY6 = {1,2,3},
}
local origin = "{\"KEY3\":\"VALUE3\",\"KEY4\":\"VALUE4\",\"KEY2\":\"VALUE2\",\"KEY1\":\"VALUE1\",\"KEY5\":{\"KEY5_2\":\"VALU5_2\",\"KEY5_1\":\"VALU5_1\"},\"KEY6\":[1,2,3]}"

4.编写encode和decode函数

local function encodeJson()
  local jsondata = json.encode(torigin)
  print(jsondata)
end
local function decodeJson()
  local tjsondata = json.decode(origin)
  print(tjsondata["KEY1"])
  print(tjsondata["KEY2"])
  print(tjsondata["KEY3"])
  print(tjsondata["KEY4"])
  print(tjsondata["KEY5"]["KEY5_1"],tjsondata["KEY5"]["KEY5_2"])
  print(tjsondata["KEY6"][1],tjsondata["KEY6"][2],tjsondata["KEY6"][3])
end

5.定时器调用函数

sys.timer_start(encodeJson,1000)
--sys.timer_start(decodeJson,1000)

6.在编辑工具中建立一个名为main.lua的文件。lua脚本的执行从main.lua开始,main.lua是入口文件(注意:main.lua只能有一个)。在main.lua中把test加载进去就好了。sys.init()是对系统初始化,sys.run()是系统主程序。这两句必须有。

--重要提醒:必须在这个位置定义MODULE_TYPE、PROJECT和VERSION变量
--MODULE_TYPE:模块型号,目前仅支持Air201、Air202、Air800
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
MODULE_TYPE = "Air202"
PROJECT = "JSON"
VERSION = "1.0.0"
require"sys"
require"test"
if MODULE_TYPE=="Air201" then
require"wdt"
end
sys.init(0,0)
sys.run()

!!!attention

一个工程只有一个main.lua

详情代码见下链接

上一篇下一篇

猜你喜欢

热点阅读