нужно направление относительно jquery и json - PullRequest
0 голосов
/ 12 июля 2010

У меня есть этот URL, который является веб-сервисом JSON http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2

Мне нужно написать функцию jquery для доступа к объекту JSON из приведенного выше URL. Я не уверен, как продолжить эту задачу. Может ли кто-нибудь помочь мне с запуском кода jquery?

Спасибо


Чтобы отобразился HTML-код, я удалил «<» для каждого тега. То, что я попытался сделать ниже, это перебрать элементы, возвращаемые через объект JSON. Тем не менее, я не вижу никакого результата. Мог ли кто-нибудь указать на мою ошибку в этом отношении? </p>

корпус>

div id = "para">

/ DIV>

сценарий>

$. GetJSON ('http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2',function(data) {

      $.each(data.weatherObservations, function(i,item){
        $("<p/>").attr("src", item.temperature).appendTo("#para");
        if ( i == 3 ) return false;
      });
    });

/ скрипт>

/ body>

Спасибо.


Привет

Теперь мне нужен доступ к другому веб-сервису. Я набрал код в тех же строках, что и выше, но я ничего не получил. Может ли кто-нибудь помочь в определении моей ошибки?

jQuery(document).ready(function() {

  var url = 'http://www.worldweatheronline.com/feed/weather.ashx?q=75080&format=json&num_of_days=5&key=ac9c073a8e025308101307';

  jQuery.getJSON(url, function(data) {
      $.each(data.data.weather, function(i, item){
        $("body").append("<p>"+item.date+"</p>");
        if ( i == 3 ) return false;
      });
    }); 
 });

Спасибо!

Ответы [ 3 ]

3 голосов
/ 12 июля 2010

Это должно быть так просто:

<script type="text/javascript">
  jQuery.getJSON('http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2', function(data) {
    // The JSON object is now in the data variable --
    // process it here; for example:
    alert(data.weatherObservations[0].clouds);
  });
</script>

Имейте в виду, однако, что ваш вызов AJAX должен поступать из того же домена (ws.geonames.org), так как большинство современных браузеров не разрешают междоменные запросы. Обходной путь должен использовать формат JSON-P вместо чистого JSON.

... В ответ на правки новичка на его первоначальный вопрос, вот более полное решение:

<html><head></head><body>
  <div id="para"></div>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  <script>
    jQuery.getJSON('http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2', function(data) {
      jQuery.each(data.weatherObservations, function(i,item){
        jQuery("<p/>").html(item.temperature).appendTo("#para");
      });
    });
  </script>
</body></html>
2 голосов
/ 12 июля 2010

Чтобы помочь вам прочитать содержимое, которое возвращается, поместите его в http://jsbeautifier.org/, и оно отформатирует его так, чтобы оно было читабельным.

В дополнение к ответу Марка вы должны проверить textStatus

http://jsfiddle.net/VC5c2/

var url = "http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2";

​jQuery.getJSON(url,function(data, textStatus) {
    if (textStatus == "success") {
        for (idx in data.weatherObservations) {
            var wo = data.weatherObservations[idx];
            console.log("Temperature at " + wo.stationName + ":  " + wo.temperature);
        }
    }
});​
1 голос
/ 12 июля 2010

Поиск jquery json сначала открыл эту страницу, которая, кажется, именно то, что вам нужно: jQuery.getJSON ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...