【问题标题】:Yahoo weather-api response as json雅虎天气 API 响应为 json
【发布时间】:2011-02-15 07:32:20
【问题描述】:

我正在使用yahoo weather api 获取天气信息

这将返回一个 xml 输出。
我想以 JSON 格式获取它。我怎样才能得到这个 JSON?

【问题讨论】:

    标签: json yahoo-weather-api


    【解决方案1】:

    我建议使用 YQL 并请求 JSON 输出。您引用的链接是 Yahoo 的天气 RSS 提要。

    http://query.yahooapis.com/v1/public/yql?q=select%20item%20from%20weather.forecast%20where%20location%3D%2248907%22&format=json

    【讨论】:

    • 如何在上述查询中传递参数,例如纬度、经度或只有 woeid 来获取天气。
    • yql 天气预报仅限美国!
    • 其实你可以把世界上任何一个城市的位置,在http://weather.com搜索你想要的城市,在URL中会显示你需要使用的ID查询:对于日本东京:JAXX0085 对于墨西哥城市:MXDF0132 ...您好!
    • YQL 方法将仅基于两个参数。 WOEID 和单位。请记住,YQL weather.forecast 只能用于获取最多两天的预报。
    • 您可以使用 YQL 子查询来使用地理位置的纬度/经度:select * from weather.forecast where woeid in (SELECT woeid FROM geo.placefinder WHERE text="34.0485508,-84.22675029999999" and gflags="R")
    【解决方案2】:

    http://weather.yahooapis.com/forecastjson?w=2502265

    只需将 URL 中的 forecastrss 替换为 forecastjson。 我看到一个缺点:没有为天气预报返回 weather-code

    2014-06 更新:这曾经有效,但自 2012-10 以来似乎已经消失(另请参阅 https://developer.yahoo.com/forum/YQL/-/1349591762366-e0f8ad94-f599-49fe-bddb-fe3cd0180dea

    【讨论】:

    • 这似乎可行,但我无法找到它的文档。但是有forecastrss 的文档。奇怪。
    【解决方案3】:

    根据http://weather.yahooapis.com/forecastrss 的文档,rss 响应是 xml。

    天气 RSS 提要是一个 XML 符合 RSS 2.0 的文档 规格。 RSS 是一个 XML 文档 包含单个通道元素 代表饲料,几个 包含有关的元数据的元素 喂自己,以及一件或多件物品 描述单个项目的元素 在提要中。

    因此,您不会收到 JSON 格式的响应

    【讨论】:

      【解决方案4】:

      如果您正在寻找 JSON 天气 API,我有一个建议给您!
      我在 mashape 上提供了一个 Weather API,他们有一个可以使用的简单 PHP SDK。 这个 api 使用起来非常简单,因为我们使用现在可用的很酷的标准,例如 JSON 和 REST,而我们的竞争对手仍然使用旧的 SOAP/XML 系统。

      谈到数据质量 Metwit(我的“公司”)作为一个众包平台而诞生,用于收集来自真人的实时天气报告。在超过一万用户开始使用我们的应用程序并发送大量报告后, 我们决定通过我们的 API 发布这些珍贵的报告。

      我们还充当多个难以解析的预测来源(如 NOAA)的单一网关,并且我们正在使用来自现有社交网络的照片、推文等社交数据来增强它们。

      如果你喜欢它,请在mashape尝试一下!

      【讨论】:

        【解决方案5】:

        经过几次搜索后,我发现 yahoo 天气 api 最适合我,因为它是我真正需要的。 从经纬度获取天气数据

        在 XML 中(默认)

        http://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid in (SELECT woeid FROM geo.places WHERE text="({28.3949},{84.1240})")
        

        JSON 格式

        http://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid in (SELECT woeid FROM geo.places WHERE text="({28.3949},{84.1240})")&format=json
        

        您的输出将如下所示

        输入你自己所在位置的经纬度来查找你所在位置的天气,希望这会有所帮助。

        【讨论】:

        • 谢谢,它可以工作,你甚至不需要使用授权。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        • 1970-01-01
        • 2013-07-06
        • 2012-08-24
        • 2011-11-15
        • 1970-01-01
        • 2016-10-22
        相关资源
        最近更新 更多