文档章节

制作简单的单词查询软件

小波刘
 小波刘
发布于 2015/04/11 17:18
字数 410
阅读 16
收藏 0

BO API是一款免费的数据服务API(http://www.boapi.net/),其单词查询接口http://service.boapi.net/EnWord/EnWord.ashx?key=AppKey&type=w&word=good,其中AppKey是申请的key,word是查询的单词。详细文档查看http://www.boapi.net/enword.htm。

开发语言:C#(wpf)

工具:VS2012

关键代码

private void btnSearch_Click(object sender, RoutedEventArgs e)
        {
            string word = tbKey.Text.Trim();
            if (word == "")
                return;
            try
            {
                WebClient wc = new WebClient();
                wc.Encoding = System.Text.Encoding.UTF8;
                string json = wc.DownloadString("http://service.boapi.net/EnWord/EnWord.ashx?appkey=dd298fc40c3be17b1b94e2f3412&word=" + word);
                wc.Dispose();
                if (!string.IsNullOrEmpty(json))
                {
                    JToken jk = (JToken)JsonConvert.DeserializeObject(json);
                    if (jk != null)
                    {
                        tbWord.Text = word;
                        tbPhonetic.Text = "[" + jk["mark"].ToString() + "]";
                        tbTrans.Text = jk["explain"].ToString();
                        voice.Visibility = Visibility.Visible;
                        voice.Tag = "http://www.boapi.net/basicdata/voice/" + word.Substring(0, 1) + "/" + jk["voice"].ToString();
                        if (jk["es"] != null)
                        {
                            if (jk["es"].Count() > 0)
                                tbSentence.Text = jk["es"][0]["sentence"].ToString() + " " + jk["es"][0]["translate"].ToString();
                            if (jk["es"].Count() > 1)
                                tbSentence.Text += Environment.NewLine + jk["es"][1]["sentence"].ToString() + " " + jk["es"][1]["translate"].ToString();
                            //if (jk["es"].Count() > 2)
                            //    tbSentence.Text += Environment.NewLine + jk["es"][2]["sentence"].ToString() + " " + jk["es"][2]["translate"].ToString();
                        }
                    }
                }
            }
            catch
            { }
        }

 

代码解析:

WebClient提供资源接收数据公共方法,我们就可以从远程url地址下载数据(访问服务)。
JsonConvert.DeserializeObject将string反序列化为json对象
voice是一个播放图标,这里将单词的音频文件地址存储到voice的Tag属性中

注意:

单词查询返回的json中,Voice代表单词语音文件名。访问语音文件的url为:http://www.boapi.net/basicdata/voice/单词文件名

如:查询good单词返回的json中"voice":"good.wav",则good单词的url为http://www.boapi.net/basicdata/voice/good.wav

源码下载:单词查询软件源码

© 著作权归作者所有

共有 人打赏支持
小波刘
粉丝 0
博文 3
码字总数 707
作品 0
成都
易语言简单聊天机器人怎么做(有图,求开源高手帮忙!)

本人真的急需此软件,求广大高手教教我这个小菜鸟: 1.怎样弄:在一个小窗口里,只要打一个句子或者单词,触发到数据库(我连数据库也不会弄)作出相应回答,我不用做得太智能,只要我输入多...

allanqiu97
2012/06/27
8.5K
28
背单词软件--WordJoy

WordJoy是一个用pygtk编写的背单词软件。目前只在Linux下成功测试,至于在Windows下运行需要安装哪些库,请参加其它pygtk写的程序。 WordJoy基于TualatriX大侠的MyWord改写而成,而MyWord又是...

匿名
2009/07/17
1K
0
有道词典 纯净版 - imsoft.cnblogs

软件名称:有道词典 软件版本:5.4 正式版(5.4.46.5554) 软件主页:http://cidian.youdao.com/ 软件定制:飞扬时空 更新日期:2013年8月26日 软件简介: 有道词典是一款免费的全能翻译软件...

imzdx
2014/04/17
0
0
如何制作AOPR软件的字典文件

Advanced Office Password Recovery简称AOPR软件,是一款十分专业的Office密码破解工具,字典攻击是其众多攻击类型之一,用户可以根据实际添加适用的字典文件,本文将介绍Advanced Office P...

Navicat数据库管理工具
2016/05/25
33
0
统计出现频率最高的十个单词的程序性能分析

李竹君 2011211964 0401115班 1.使用C语言。 2.整体思路:首先将一篇文章分词,分词的方法是将逐字符的判断一篇文章,如果该字符的ASCII码在“A~Z”或“a~z”之间(区分大小写),则该字符属...

大脸猫cat
2014/03/17
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

阿里云API网关使用教程

API 网关(API Gateway)提供高性能、高可用的 API 托管服务,帮助用户对外开放其部署在 ECS、容器服务等阿里云产品上的应用,提供完整的 API 发布、管理、维护生命周期管理。用户只需进行简...

mcy0425
35分钟前
4
0
解决远程登陆误按ctrl+s锁屏假死恢复

使用putty时,偶尔发生屏幕假死,不能输入等情况。 后来发现,只要数据ctrl+s,就会假死;输入ctrl+q就可以恢复过来。 很多刚从windows转移到linux上来工作的朋友,在用vi/vim编辑文件时,常常...

HJCui
38分钟前
0
0
@Transactional

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于...

asdf08442a
43分钟前
2
0
widows下强制解除8080端口占用问题

使用win+R打开命令窗口 输入以下命令查看哪个任务占用了8080端口 netstat -ano |findstr "8080" 然后通过任务id强制关闭占用该端口的进程 tskill 10044 // 自己的试情况而定,这个ID是LISTE...

_Artisan
52分钟前
2
0
productFlavors简单实用

最近项目中,不同环境需要配置的参数越来越多,为了减少修改代码次数。研究了一下productFlavors的使用方式,总结如下 1. as3.0以上版本使用productFlavors时需要指定一个flavorDimensions,...

火云
54分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部