• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 15
发新话题 回复该主题

[按键精灵安卓版] 新增命令JSON数据转换-【201601期】 [复制链接]

1#

JSON数据和Table的相互转换



本文按键学院提供技术支持



按键学院交流①群(1群已满):376122403

按键学院交流②群(2群):372671254

按键学院交流③群(3群):170084238

【按键学院】安卓课程(115768679)




安卓按键又新增给力的命令啦~~~ 这次的命令是用来在JSON和Table数据之间的转换的。熟悉lua语言的同学知道,lua语言里有种Table数据类型功能很强大,就相当于按键精灵里的数组的增强版,在lua里很多功能的实现都需要依靠Table数据才行。安卓按键的MQ语言虽然是基于lua的,但是之前一直不支持Table类型数据。
但是现在可以支持啦,可以支持定义一个表,并输出key值,同时还可以支持把JSON数据格式转换成Table类型的数据。今天我们就来了解下具体的操作

初步了解Table类型数据


要想会用这两个新增的命令,就得要先了解下Table类型数据是个什么样的东西。前面说过了,它就是数组的增强版本。用法比数组更加的灵活。

我们先来看下Table数据的基础结构:
  1. dim a="k2"
  2. Dim v3 = "i am v3"
  3. //定义table(表),table是一种数据类型,可以把其他类型的变量重新定义为table;key可以是字符串、变量、数值等
  4. Dim t= {"k1":1, a:true, 3.14:v3,"k":{"k3":3,"k4":4}}
复制代码
其中 {"k1":1, a:true, 3.14:v3,"k":{"k3":3,"k4":4}}这个就是Table数据(也称为表)的常见结构

表的key可以是各种数据,可以是字符串(需加引号)、变量(需要先定义一个值)、整数型,也可以是一个新的表(也就是嵌套表)。整个表需要用大括号括起来
key的赋值使用冒号来赋值,不同key值之间使用逗号分隔开。如果key值也是一个表的话,需要用大括号括起来。

想要输出表内的key值的内容也简单:
  1. dim a="k2"
  2. Dim v3 = "i am v3"
  3. Dim t= {"k1":1, a:true, 3.14:v3,"k":{"k3":3,"k4":4}}
  4. TracePrint t["k1"]
  5. TracePrint t[a]
  6. TracePrint t[3.14]
复制代码
如果key值也是一个表的话,那需要先把这个key的值赋值成一个新的表,然后才能继续输出
  1. dim a="k2"
  2. Dim v3 = "i am v3"
  3. Dim t= {"k1":1, a:true, 3.14:v3,"k":{"k3":3,"k4":4}}
  4. Dim t1 = t["k"]
  5. TracePrint t1["k3"]
复制代码
同时也可以用For Each命令来遍历输出一个表里的值(如果key值是一个表,那会返回unknown)
  1. Dim k, v
  2. For Each k, v In t //可以这样变量
  3. TracePrint "key名称是: " & k
  4. TracePrint "key的值是: " & v
  5. Next
复制代码
JSON和Table格式之间的转换


JSON 是一种变成语言里比较通用的数据结构,他和表类似,可以存放各种数据。常接触网络请求的同学一定不会陌生,一些网络请求返回的数据就是JSON格式。

JSON和Table 样子虽然相似,但是还是不能直接通用的,所以需要使用命令来转换下

命令名称Encode.TableToJson
命令功能 将Table 表转换成对应的Json字符串
命令参数 键值表:字符串型,任意有效的键值表字符串
返回值 Json字符串:字符串型,返回对应键值表转成的json字符串


命令名称Encode.JsonToTable
命令功能 将Json字符串转换成对应的Table 表
命令参数 Json字符串:任意有效的Json字符串
返回值 键值表:返回json字符串所对应的键值表


范例:
  1. dim a="k2"
  2. Dim v3 = "i am v3"
  3. Dim t= {"k1":1, a:true, 3.14:v3,"k":{"k3":3,"k4":4}}
  4. //表转成JSON数据
  5. Dim Json字符串 = Encode.TableToJson(t)
  6. TracePrint Json字符串
  7. //JSON数据 转换成表数据,表数据无法直接输出查看
  8. Dim 键值表 = Encode.JsonToTable(Json字符串)
复制代码



    已有4评分我要评分查看所有评分

    最后编辑quitout 最后编辑于 2016-01-14 23:11:45
    本主题由 按键工程师 quitout 于 2016/1/14 18:09:46 执行 移动主题 操作
    2#

    111111111111111111111111111

    3#

    看看呗!!!!!!!!!!!!!!!!!!

    4#

    谢谢楼主

    5#

    有进步了

    Q228293067
    6#

    好难啊,宝宝完全搞不懂

    7#

    tertert35

    8#

    学习一下,谢谢分享

    9#

    10124545

    10#

    不知道效率好不好

    11#

    1111111111111

    12#


    13#


    14#

    学习学习!!!!!!!!

    15#

    N数据转换-【

    16#


    17#


    18#

    111111111111

    19#

    不太行

    20#

    宝宝吧

    发新话题 回复该主题