【问题标题】:Newton.Json: exception: NullReferenceException Weather Data request openweathermap [duplicate]Newton.Json:异常:NullReferenceException 天气数据请求 openweathermap [重复]
【发布时间】:2023-03-25 14:38:01
【问题描述】:

//编辑:这不是重复的,建议的线程对我没有帮助,因为我的问题与 Newton.Json// 我将 Newtonsoft.Json 用于我的历史 Weatherapp(大学项目)。所以我选择使用 openweathermap.org。这是我的代码:

    var request = (HttpWebRequest)WebRequest.Create("http://api.openweathermap.org/data/2.5/history/city?q=exampletown&start=1420135249&end=1421085649&type=hour")
var response = await request.GetResponseAsync();
var rawJson = new StreamReader(response.GetResponseStream()).ReadToEnd();

var json = JObject.Parse(rawJson);
string temp_value = json["temp"].ToObject<string>();

我总是遇到异常:NullReferenceException:对象引用未设置为对象的实例。附加信息:json 和 rawjson 不为 null,temp_value 为。当我在破旧的地方问这个问题时,我很抱歉。我是新来的人。

PS:uri 不完全正确,我将我的城镇替换为 exampletown

【问题讨论】:

  • 看看json字符串长什么样会很有帮助。
  • 嘿。尝试使用这个 URI:api.openweathermap.org/data/2.5/history/…
  • 异常发生在哪里?如果它在json["temp"] 行中,只需在尝试访问它之前检查json["temp"] 是否为空。这与 Newtonsoft.Json 无关,这确实是重复的。如果您想知道为什么 json["temp"] 为空,请隔离导致问题的 json sn-p。如果您尝试一次解析所有数据,您将永远找不到问题,我们也不能
  • 这不再与空引用有关。问题是关键字“temp”不是 JSON 属性。但我只需要从 json 文件中获取临时文件。所以我想问我能做些什么来用 newton.json 获取这些数据

标签: c# json windows xaml openweathermap


【解决方案1】:

这可能是因为返回的 JSON 没有名为 temp 的属性。例如,我在 Fiddler 1http://api.openweathermap.org/data/2.5/history/city?id=2885679&amp;type=hour&amp;start=1369728000&amp;end=1369789200&amp;type=hour 中尝试了以下 api 调用,但没有看到 temp 属性。

【讨论】:

  • 哦,我明白了。所以我尝试了city_id,一切都很好。但这不是我想要的结果。我真的需要这样的东西:“temp”:278.241,“temp_min”:278.241,“temp_max”:278.241。当我调用列表属性时,该值仍然为空。有什么想法吗?
  • 这可能是因为您在编写.ToObject&lt;string&gt;();时试图将其转换为字符串
  • 你会推荐什么?
猜你喜欢
  • 2013-12-12
  • 2020-08-06
  • 2019-04-13
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
相关资源
最近更新 更多