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

准备写一个关于按键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提取)