Yahoo weather-api ответ как json

Я использую yahoo weather api для получения информации о погоде.

Это возвращает xml-вывод.
Я хочу получить его в формате JSON. Как я могу получить это как JSON?


person Muhammad Zeeshan    schedule 15.02.2011    source источник


Ответы (5)


Я бы предложил использовать YQL и запросить вывод JSON. Ссылка, на которую вы ссылаетесь, представляет собой RSS-канал погоды Yahoo.

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

person seeingidog    schedule 15.02.2011
comment
как я могу передать параметры в приведенном выше запросе, такие как широта, долгота или только для получения погоды. - person Muhammad Zeeshan; 15.02.2011
comment
yql прогноз погоды только для США! - person Anas Nakawa; 20.10.2011
comment
Фактически, вы можете указать местоположение любого города в мире в поиске города http://weather.com вы хотите, и в URL-адресе будет отображаться идентификатор, который вам нужно использовать в запросе: Для Токио, Японии: JAXX0085 Для города Мексики: MXDF0132 ... Приветствую! - person ChavirA; 21.12.2012
comment
метод YQL будет основан только на двух параметрах. WOEID и Unit. Помните, что прогноз погоды YQL можно использовать только для получения прогноза максимум на два дня. - person Jes Chergui; 27.03.2013
comment
Вы можете использовать подзапрос YQL, чтобы использовать широту / долготу из геолокации: select * from weather.forecast where woeid in (SELECT woeid FROM geo.placefinder WHERE text="34.0485508,-84.22675029999999" and gflags="R") - person Dan Esparza; 29.06.2015

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

Просто замените forecastrss на forecastjson в URL-адресе. Вижу один недостаток: не возвращается погода-code для прогноза.

Обновление 2014-06: раньше работало, но, похоже, исчезло с 2012-10 (см. также https://developer.yahoo.com/forum/YQL/-/1349591762366-e0f8ad94-f599-49fe-bddb-fe3cd0180)

person simon04    schedule 12.05.2011
comment
Кажется, это работает, но я не могу найти для этого документацию. Однако есть документация для forecastrss. Странный. - person dana; 10.02.2012

Согласно документации на странице http://weather.yahooapis.com/forecastrss, ответ RSS - xml.

RSS-канал погоды - это XML-документ, соответствующий спецификации RSS 2.0. RSS - это XML-документ, содержащий один элемент канала, представляющий ленту, несколько элементов, содержащих метаданные о самой ленте, и один или несколько элементов элементов, описывающих отдельные элементы в ленте.

Итак, вы не получите ответа в формате JSON.

person naveen    schedule 15.02.2011

Если вы ищете JSON API погоды, у меня есть предложение для вас!
Я сделал Weather API доступен на mashape, и у них есть готовый к использованию простой PHP SDK. Этот api действительно прост в использовании, потому что мы используем классные стандарты, доступные в настоящее время, такие как JSON и REST, в то время как наши конкуренты по-прежнему используют устаревшие системы SOAP / XML.

Говоря о качестве данных, Metwit (моя «компания») родился как краудсорсинговая платформа для сбора прогнозов погоды в реальном времени от реальных людей. После того, как более десяти тысяч пользователей начали использовать наши приложения и отправлять огромное количество отчетов, мы решили выпустить эти ценные отчеты через наши API.

Мы также выступаем в качестве единого шлюза для множества трудно анализируемых источников прогнозов, таких как NOAA, и дополняем их социальными данными, такими как фотографии, твиты и т. Д., Которые мы используем из существующих социальных сетей.

Если вам это нравится, попробуйте на mashape!

person Simone D'Amico    schedule 29.01.2013

После нескольких поисков я обнаружил, что api погоды Yahoo лучше всего подходит для меня, как то, что мне действительно нужно. Чтобы получить данные о погоде по широте и долготе

В 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

Ваш вывод будет таким, как показано ниже  введите описание изображения здесь

Укажите широту и долготу своего места, чтобы определить погоду, надеюсь, это поможет.

person yubaraj poudel    schedule 07.09.2016
comment
Спасибо, работает и даже авторизацию использовать не нужно. - person Mieszczańczyk S.; 11.10.2018