原文:http://jingyan.baidu.com/article/6dad5075ccae63a122e36e51.html?qq-pf-to=pcqq.c2c
本系列教程将详细讲解.NET下的新浪微博开发过程。在编写本节教程之前,小编已经熟读了网上大部分关于.NET(C#)关于新浪微博开发的教程,发现很多问题,比如大多数教程之解析到获得了返回的数据,至于返回的数据如何处理就只字不提。对数据处理方面,有的文章甚至需要再去删改数据的格式,这也是作者本身没有对JSON数据格式理解到位。针对上述存在的种种问题,小编就编写一套关于新浪微博API数据的获取与解析的教程。教程将尽量详碎,还请大师绕道,容我新人以学习空间。
工具/原料
-
新浪微博平台账号,以及App Key、App Secret。
-
Microsoft Visual Studio 2010(或其他版本)
-
Newtonsoft.Json库(用来解析JSON数据)
方法/步骤
-
配置编译环境。
添加Newtonsoft.Json。
获取应用App Key、App Secret。
-
添加引用:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Net;
这一步也可以先略过,当编译器报错“未能找到类型或命名空间名称****”时,右键报错字符串->解析,点击相关库即可。
-
获取新浪微博返回数据:
主要步骤如下所示,其他相关经验已经有详细介绍,这里不再赘述。主要内容就是返回新浪微博所回馈的内容。
1.配置用于连接的账户以及所要调用API的地址,这里调用的接口功能是返回最新的公共微博,由URL字符串内的count参数控制所需返回的微博条数。
2.初始化连接对象并验证用户权限。
3.最后读取新浪微博API返回的数据。
到最后一部分,如果一切正常,在变量content内存储的就是由新浪微博API根据请求以JSON格式返回的数据。
-
JSON数据解析
当获得JSON数据结构后需要对返回的JSON数据结构有所了解,我们可以通过下边的截图看到返回的数据结构。由一个"statuses"包裹住了整个的JSON结构,这里的"statuses"是用来描述内部是存储何种数据。继续往里看,可以看到的是当前这条微博的详细信息,这些都可略过,主要看"user"字段,"user"字段描述的是微博作者的详细信息。
因此我们面对这样一个三层的结构应该如何下手,就成了本篇经验的精髓所在:
//获取"statuses"内所有字段的信息,在这里建议做一下优化,因为有时候网络原因content将得到返回的error字符串,如果还这样写系统就会报错
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
string json = jo["statuses"].ToString();
//将"statuses"字段内的数据边为JArray数组
JArray ja = (JArray)JsonConvert.DeserializeObject(json);
//然后我们就像调用数组一样调用JSON每层结构的内容了
//以下内容是将微博内容、微博创建时间、微博作者名称添加到表中
for (int i = 0; i < ja.Count; i++)
{
JObject obj = (JObject)ja[i];
ListViewItem item = new ListViewItem(obj["text"].ToString());
item.SubItems.Add(obj["created_at"].ToString());
item.SubItems.Add(obj["user"]["name"].ToString());
listViewRand.Items.Add(item);
}
-
至此,JSON数据获取与解析的全部工作都已经完成,下边是我做的一个简单的实例,返回微博的相关信息,乱码绝非BUG,只是包含链接内容就不显示了。
感谢您的阅读,如果觉得这篇文章给您提供了一点点的帮助,请点个赞~
END