文章内容
2017/11/28 10:51:12,作 者: 黄兵
给定关键字不在字典中
程序运行了一段时间,之后报错了,错误提示如下:
异常详细信息: System.Collections.Generic.KeyNotFoundException: 给定关键字不在字典中。
这个程序主要是每天从知乎获取文章内容,之后在我的网站上显示,突然有一个字段没有,就报上面的错误。
看一下程序源代码:
string url = "https://news-at.zhihu.com/api/4/news/" + ZhihuId;string GetZhihuCon = await HttpRequest.HttpGetAsync(url, "");//解析zhihu Json数据Dictionary<string, object> values = JsonConvert.DeserializeObject<Dictionary<string, object>>(GetZhihuCon);
首先解析远程内容,之后使用Dictionary<k,v>
来存储相应字段,如果某个字段远程没有就会报这个错误。
那么我们要做的就是首先判断一下,存在这个字段没有,使用ContainsKey
方法:确定是否 Dictionary<
TKey, TValue>
包含指定键。
修改源代码如下:
Zhihu_Extend ZhihuExtend = new Zhihu_Extend();ZhihuExtend.Image_source = values.ContainsKey("image_source") ? values["image_source"].ToString() : null;ZhihuExtend.ImageUrl = values.ContainsKey("image") ? values["image"].ToString() : null;ZhihuExtend.Js_Url = values.ContainsKey("js") ? values["js"].ToString() : null;ZhihuExtend.Css_Url = values.ContainsKey("css") ? values["css"].ToString() : null;ZhihuExtend.Share_Url = values.ContainsKey("share_url") ? values["share_url"].ToString() : null;
这样问题就解决了。
参考资料:
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - 给定关键字不在字典中
评论列表