迭代JSON对象的问题

时间:2010-07-12 17:08:59

标签: javascript jquery json iterator

在下面的代码中,我尝试迭代JSON对象字符串。但是,我没有得到所需的输出。我在网页上的输出看起来像是: -

+ item.temperature ++ ++ item.temperature ++ item.temperature + item.temperature

输出温度的警报效果很好。我尝试通过迭代JSON对象字符串来尝试访问值的部分似乎不起作用。有人可以帮我解决这个问题吗?

代码

<body>

<script>

$.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){
            $("body").append("+item.temperature+");
            if ( i == 3 ) return false;
          });
    alert(data.weatherObservations[0].temperature);
        });

</script>

</body>

3 个答案:

答案 0 :(得分:3)

请勿在{{1​​}}部分的$("body").append("+item.temperature+");内使用引号。

应该是

.append()

使用与您一样的引号编写该表达式,只需反复添加$(document.body).append(item.temperature); 。 Java // Ecmascript将引号解释为字符串文字。

请注意,我还将string替换为"body"。这主要是表现//访问原因,所以更好的业力。

答案 1 :(得分:1)

你的代码正在迭代,但是你要附加“+ item.temperature +”,你不想做像

这样的事情吗?
$("body").append("Temp is " + item.temperature);

$("body").append(item.temperature);

答案 2 :(得分:0)

"+item.temperature+"表示"+item.temperature+"

的字符串

"pre" + item.temperature + "post"会将变量连接到字符串。

$.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) {
        $("body").append(item.temperature + ",");
        if (i == 3) return false;
    });
    alert(data.weatherObservations[0].temperature);
});