所在的位置: js >> js优势 >> 分享返回值json的提取

分享返回值json的提取

以下内容转载自按键精灵开发者:郭立员感谢大大的支持与热心分享

目前来说大部分的api接口的返回值都是json形式,比如接码平台,打码平台、百度云识别、自动回复接口、网络验证平台等等,如果我们想要用这些平台功能就需要学会提取json格式。那么什么是json格式呢?举个例子:

{"a":""}

这是我写的一个最简单json格式,看一下它的组成部分。①有一对大括号②有两个字符串③有一个冒号这里面最明显的特征就是大括号,一般来说当返回值是有大括号的话,基本就是json格式。确认是json格式以后,就会发现返回值中有很多“多余”的部分,我们只要其中的一部分,如我们这个例子中,我只要的是这个数字,其余的都不想要。新手朋友经常会通过几次分割命令把想要的内容分出来,这种方法是没问题,只是看起来有些麻烦。我们要知道为啥json中有很多的多余内容?一是json中可能包含多个内容,二是方便我们提取。写到这里你可能会说,直接返回字符串不是更方便吗,确实是,但是当多个数据(多级数据)时,返回值用字符串就不方便了。注意:json本质上也是字符串,只是格式特殊。得到json格式以后,我们还不能直接提取,需要转成table表格,这一步的转换,在形式上看是没有变化,但是内容类型就不在是字符串,而是table了。

dimtable=encode.jsontotable(json)

我们来看一下转换后的变化:样子:

{"a":""}

各部分介绍:

{"键名":"键值"}

一组键名和键值称之为“键值对”。在例子中a是键名,是键值,如果要提取就可以这样写。

dimtable={"a":""}TracePrinttable["a"]

当前脚本第2行:

提取的方式就是指定table表格中的某个键名,获取它的键值。重点:所有json的提取都是先转换成table,在用键值对的方式提取。我们这期文章中的提取方法,本质上来说不是提取json,而是提取table。复杂的json格式:(1)多组键值对的

dimtable={"a":"","b":""}TracePrinttable["b"]

当前脚本第2行:

多组键值对的,每个键值对直接用逗号分开,这种方法和最简单的一组键值对的完全一样,想要哪个键值,就指定哪个键名提取。(2)多层键值对

dimtable={"a":{"b":""}}TracePrinttable["a"]["b"]

当前脚本第2行:

这种形式中,a的键值不在是这种字符串,而是一个键值对{"b":""},我们叫a是1级,b是2级,当然b的键值也可以继续是键值对,那么就是第3级,这个层级无上限。我们可以认为a是父级,b是子级,两者是父子关系。提取的时候,从第1级别开始依次写上键名,记住别把父子关系写错名字,或者写差辈分了。(3)多层级+多个键值对这个就相当于一个父亲有多个儿子一样,提取的方法和多层级完全一样,注意事项也是别写错名字,别写差辈分。

dimtable={"a":{"b":"","c":""}}TracePrinttable["a"]["b"]TracePrinttable["a"]["c"]

当前脚本第2行:当前脚本第3行:

(4)索引形式刚刚写的例子,键名abc可以认为是人名,有些表格是没有名字,只有索引,就像父母叫孩子老大、老二、老三……,索引就是编号。

dimtable={"a":{,}}TracePrinttable["a"][1]TracePrinttable["a"][2]

当前脚本第2行:当前脚本第3行:

这种形式中内部大括号中没有了键名,只有、这种键值。注意:一般在json中,内部这个括号会用方括号,不用大括号。

{"a":[,]}

关于方括号在直接定义表格的时候是不支持的,但是通过json转表后是可以支持的,大家知道就可以了。(5)索引中是键值对

dimtable={"a":{{"b":""},{"c":""}}}TracePrinttable["a"][1]["b"]TracePrinttable["a"][2]["c"]

当前脚本第2行:当前脚本第3行:

这种形式其实是三个层级,父级是a,子级是索引,子级的子级(孙子级别)是b和c。索引这部分通常是方括号,也就是这样:

{"a":[{"b":""},{"c":""}]}

关于table的形式级别就是这些,那些看起来比较负责的格式,不过是层级比较多。找好父子孙的关系,别写错名字别写差辈分,基本就没问题。最后写一个自动聊天对接的实际应用案例:

Dimjson=url.get("


转载请注明:http://www.aierlanlan.com/grrz/6727.html