获取 天气Api 返回的 json 数据
先调用 这个 http://www.weather.com.cn/data/cityinfo/101200101.html
然后 返回 数据 ,最好用 alert 循环 弹出 值
要完整的 代码, 要能 测试运行的...
[最优解释]
Demo
[其他解释]
代码已经经过测试,简单的用了WebBrowser控件:
private void Form1_Load(object sender, EventArgs e)
{
string url = "http://www.weather.com.cn/data/cityinfo/101200101.html";
webBrowser1.Navigate(url);
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//避免webbroswer.DocumentCompleted被多次引发
if ((e.Url != webBrowser1.Url)
[其他解释]
看看介个
[其他解释]
楼主可以调用WEBSERIVE 返回的是XML用JQUERY很好遍历。JSON倒没见过
[其他解释]
这不就是最简单的JSON吗?
[其他解释]
(webBrowser1.ReadyState != WebBrowserReadyState.Complete))
return;
//下面写你要在页面加载完毕后执行的代码。
string result = webBrowser1.Document.Body.InnerText;
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(weatherinfoClass));
weatherinfoClass info = null;
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(result)))
{
info = serializer.ReadObject(ms) as weatherinfoClass;
}
[DataContract]
class weatherinfoClass
{
[DataMember]
public weatherinfo weatherinfo { get; set; }
}
[DataContract]
class weatherinfo
{
[DataMember]
public string city { get; set; }
[DataMember]
public string cityid { get; set; }
[DataMember]
public string temp1 { get; set; }
[DataMember]
public string temp2 { get; set; }
[DataMember]
public string weather { get; set; }
[DataMember]
public string img1 { get; set; }
[DataMember]
public string img2 { get; set; }
[DataMember]
public string ptime { get; set; }
}
<script type="text/javascript">
var xmlhttp;
// 创建XMLHTTPRequest对象
function createXMLHTTPRequest() {
if (window.ActiveXObject)//②如果当前浏览器为IE
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)//③如果是其他浏览器
{
xmlhttp = new XMLHttpRequest();
}
}
function getInfo() {
createXMLHTTPRequest();
xmlhttp.open("GET", "http://www.weather.com.cn/data/cityinfo/101200101.html", true);
xmlhttp.onreadystatechange = returnInfo;
xmlhttp.send(null);
}
[其他解释]
那你为什么不用ajax请求一个ashx,然后在ashx里面用webrequest类下载最新页面,然后利用正则表达获取出相应对数据,包装成json,返回前台页面呢?
[其他解释]