按键精灵_ 提取json里面的内容

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,我们一般会在api接口返回值的时候看到这种格式。

举个简单的例子,

Dim m,nm = URL.Get(" 
TracePrint m
n=Encode.JsonToTable(m)
traceprint n["content"]



按键精灵安卓版提取json里面的内容



我们看一下调试输出的结果:

当前脚本第3行:{"result":0,"content":"不怎么好"}

返回值就是我这篇文章讲到的json数据,因为json是交换格式,一般提取前找转换成table(表)格式,在上面例子中的代码提现就是,

n=Encode.JsonToTable(m)

转换成table以后,我们就可以用表的键值提取方法了。

来分析一下返回值的形式:

{"result":0,"content":"不怎么好"}

一个{}包裹住所有内容,形式是 {“键名”:“键值”},对于多个键名中间用逗号分开。

获取的格式是:表名["键名"]

例子中表名是n,键名content,那么获取的格式就是n["content"]

接下来在说一个稍微复杂的例子

Dim m=url.get("https://www.apiopen.top/novelSearchApi?name=%E7%9B%97%E5%A2%93%E7%AC%94%E8%AE%B0")

TracePrint m

dim y = Encode.JsonToTable(m)

TracePrint y["data"][1]



按键精灵安卓版提取json里面的内容



我们来看一下获取json数据的格式:

{"code":200,"msg":"成功!","data":["盗墓笔记续9","盗墓笔记续集","盗墓笔记之寻龙图","盗墓笔记12终极解密","盗墓笔记之迷途","盗墓笔记之寻仙","盗墓笔记薄","盗墓笔记续","盗墓笔记之咒语"]}

json格式是{"键名":["键值1","键值2","键值3"]}

提取的格式:表名["键名"][键值的编号]

这里面数据对应的最高层级是“data“,所以其他和data同级别的json数据就不用考虑了。

另外还有两种常见的格式,这里我就不举例了,直接把json格式和提取格式。

json格式是{"键名1":{"键名2":"键值"}}

提取格式:表名["键名1"]["键名2"]

这种是两个层级的,就是键名套键名的格式,当时里面还可以继续嵌套键名和键值,层级没有限制。

还有一种常见的是,上面两个的结合,

json格式是{"键名1":[{"键名2":"键值"}]}

提取的格式:表名["键名1"][1]["键名2"]

中间多了一个编号1,这里填写1是因为我们获取的内容是方括号里面的第一个内容,如果是多内容的情况,获取哪个就填写哪个的编号。

上面举得案例最多是三个层级的,那在很多api接口的返回值可能是多个层级的,那么获取的方式就是在上面的基础上继续往后填写对应的键值或者编号。

需要注意的是:在提取数据的时候,一定不能看错层级,找准你要提取数据的最高层级,然后逐层提取对应的键值。

最后补充一句:虽然通篇都说的json数据,其他应该叫table数据提取。

赞 (4)