我一直在寻找一些时间来解决这个问题。我正在尝试将 Weather Unlocked 本地天气 API ( https://developer.weatherunlocked.com/documentation/localweather ) 添加到我的网站。但是我只能返回所有当前值。
我希望能够取出特定的项目,例如温度、湿度或纬度/经度,而不会出现其他所有内容。
代码
const string WEBSERVICE_URL = "http://api.weatherunlocked.com/api/current/51.50,-0.12?app_id=42fd0793&app_key=cd2365f533caad77dc2d874aabc1625b";
try
{
var webRequest = WebRequest.Create(WEBSERVICE_URL);
if (webRequest != null)
{
webRequest.Method = "GET";
webRequest.ContentType = "application/json";
webRequest.Headers["X-API-Key"] = "cd2365f533caad77dc2d874aabc1625b";
//Get the response
WebResponse wr = webRequest.GetResponseAsync().Result;
Stream receiveStream = wr.GetResponseStream();
StreamReader reader = new StreamReader(receiveStream);
string content = reader.ReadToEnd();
lblContent.Text = content;
}
}
catch (Exception ex)
{
lblContent.Text = ex.ToString();
}
结果
{
"lat":51.5,
"lon":0.05,
"alt_m":5.0,
"alt_ft":16.4,
"wx_desc":"Clear skies",
"wx_code":0,
"wx_icon":"Clear.gif",
"temp_c":7.0,
"temp_f":44.6,
"feelslike_c":2.6,
"feelslike_f":36.68,
"humid_pct":70.0,
"windspd_mph":19.26,
"windspd_kmh":31.0,
"windspd_kts":16.74,
"windspd_ms":8.61,
"winddir_deg":250.0,
"winddir_compass":"WSW",
"cloudtotal_pct":25.0,
"vis_km":10.0,
"vis_mi":6.21,
"vis_desc":null,
"slp_mb":1002.0,
"slp_in":29.67,
"dewpoint_c":1.93,
"dewpoint_f":35.47
}
显然,这很混乱,并非一切都是必要的。
提前致谢!
编辑 我尝试反序列化,但出现以下错误:
System.NullReferenceException: Object reference not set to an instance of an object
当我在反序列化中编写 foreach 循环时,我得到了这个。我的猜测是它正在调用“天气”类型的对象(类似于给定示例中对象 facebookFriend 的类型为 Facebook),并且没有任何内容存储在天气对象中。也许我在 API 的调用中做错了什么,我应该将它存储在我的 Weather 类中?
杨魅力
相关分类