美文网首页Luat开源硬件
Luat实例教程:json

Luat实例教程:json

作者: Luat物联网通信模块 | 来源:发表于2018-03-23 13:26 被阅读24次

    本示例实现的功能是: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
    

    详情代码见下链接

    相关文章

      网友评论

        本文标题:Luat实例教程:json

        本文链接:https://www.haomeiwen.com/subject/uxxxcftx.html