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