美文网首页按键精灵
按键精灵安卓版详解get方法和json提取

按键精灵安卓版详解get方法和json提取

作者: 3分钟学堂郭立员 | 来源:发表于2019-06-20 11:48 被阅读0次

    准备写一个关于按键post/get教程,可是网上的资料不多,只能是通过别的语言的资料去尝试修修改改。

    今天这篇文章是关于翻译的api接口,用到的是url.get命令,那就通过它来讲讲“get方法”。

    涉及到两个知识点:

    一、get网址中各部分的分析

    二、返回值的提取

    具体实例:

    http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=你好

    按键源码先分享出来,大家可以直接测试:

    Function Translate(n)

    Dim m=url.get("http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i="&n)

    dim x = Encode.JsonToTable(m)

    Translate=x["translateResult"][1][1]["tgt"]

    End Function

    TracePrint Translate("你好")

    /------------下面是重点了------------------/

    先说第一点,这个api网址的组成部分,下面我们开始拆分了。

    http://fanyi.youdao.com/  接口的主网址

    translate?  执行的具体操作(例子中是翻译),一般它是跟在主网址后面,以问号结尾。

    &doctype=json&type=AUTO&i=你好   这几个是参数,每一个参数之间用&连接起来

    doctype=json     标签和值,doctype 文档类型,对应的值是json

    type=AUTO      翻译的类型是自动,也就是可以自己判断语音类型,在介绍中说可以指定翻译类型。

    type的类型有:

    ZH_CN2EN 中文 » 英语

    ZH_CN2JA 中文 » 日语

    ZH_CN2KR 中文 » 韩语

    ZH_CN2FR 中文 » 法语

    ZH_CN2RU 中文 » 俄语

    ZH_CN2SP 中文 » 西语

    EN2ZH_CN 英语 » 中文

    JA2ZH_CN 日语 » 中文

    KR2ZH_CN 韩语 » 中文

    FR2ZH_CN 法语 » 中文

    RU2ZH_CN 俄语 » 中文

    SP2ZH_CN 西语 » 中文

    i=你好 这个是要翻译的内容,你想翻译什么,就在等号后面写上。

    总结一下get方法的格式:

    主网址/操作?参数1&参数2&参数n

    我在基础课第24课,讲对接接码平台知识点的时候,就是用到这种方式,大家可以去看看视频对照着,像我上面那样分析一下。

    第一点讲完了,我们在来说说第二点,怎么提取返回值,还是上面为例,运行以后得到返回值如下:

    {"type":"ZH_CN2EN","errorCode":0,"elapsedTime":1,"translateResult":[[{"src":"你好","tgt":"hello"}]]}

    我们要在返回值里面提取我们想要的hello。

    这个返回值的类型是json,如果你有印象的话,上面我们有个参数是doctype=json     标签和值,doctype 文档类型,对应的值是json,所以它们是对应的。

    json的内容在按键精灵里面先要通过 Encode.JsonToTable转化为键值表,当然从表面形式上来说是没啥变化的。

    我们开始拆解这个json代码了,我们假设json代码是存入变量m里面,简单的可以表示为

    m={"type":"ZH_CN2EN","errorCode":0,"elapsedTime":1,"translateResult":[[{"src":"你好","tgt":"hello"}]]}

    拆解json就像剥大蒜一样,从最外层开始一层层剥。

    最外层:{},剥开以后是

    "type":"ZH_CN2EN","errorCode":0,"elapsedTime":1,"translateResult":[[{"src":"你好","tgt":"hello"}]]

    看一下格式:

    "type":"ZH_CN2EN"

    "errorCode":0,

    "elapsedTime":1

    "translateResult":[[{"src":"你好","tgt":"hello"}]]

    它的形式是"键名":"键值",然后每一个之间用逗号分开,我们要找的hello,在"translateResult"里面,这样第一层剥完。

    我们先写上m["translateResult"]

    m代码json值,那么m["translateResult"]就是说我们要提取的内容在json里面的"translateResult"这个键值里面。

    继续剥开"translateResult"的内容

    [[{"src":"你好","tgt":"hello"}]]

    有[ ],有中括号的话,我们就直接加[1]

    m["translateResult"][1]

    这样又剥一层

    [{"src":"你好","tgt":"hello"}]

    又有[ ],继续加[1]

    m["translateResult"][1][1]

    然后再剥开一层

    {"src":"你好","tgt":"hello"}

    这个时候和最开始就一样了,内容是"tgt":"hello",那么就写["tgt"]

    到这一步我们就得到了hello。

    最终我们的形式就是

    m["translateResult"][1][1]["tgt"]

    本期教程就这些内容,如果觉得还行,麻烦点个赞,谢谢!

    回复命令库,可以下载我的开源命令库xiaomu.mql

    相关文章

      网友评论

        本文标题:按键精灵安卓版详解get方法和json提取

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