首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用Angular从Json数据中获取天气数据

无法使用Angular从Json数据中获取天气数据
EN

Stack Overflow用户
提问于 2014-01-16 17:19:08
回答 2查看 275关注 0票数 1

解析的方式是不是错了?我在试着获取天气数据

代码语言:javascript
运行
复制
function Hello($scope, $http) {
$http
    .jsonp('http://api.worldweatheronline.com/free/v1/weather.ashx?q=London&format=json&num_of_days=5&key=MYKEY&callback=JSON_CALLBACK')
    .success(function(data) {
        var datais = JSON.stringify(data);
        console.log("Datais::"+datais);
        console.log("Weather::"+datais["weather"]);


    })
    .error(function(data){
       alert("Error");
    });
}

输出:

代码语言:javascript
运行
复制
Datais::{
"data": {
    "current_condition": [{
        "cloudcover": "25",
        "humidity": "76",
        "observation_time": "09:13 AM",
        "precipMM": "0.0",
        "pressure": "992",
        "temp_C": "9",
        "temp_F": "48",
        "visibility": "10",
        "weatherCode": "113",
        "weatherDesc": [{
            "value": "Sunny"
        }],
        "weatherIconUrl": [{
            "value": "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0001_sunny.png"
        }],
        "winddir16Point": "SSW",
        "winddirDegree": "200",
        "windspeedKmph": "13",
        "windspeedMiles": "8"
    }],
    "request": [{
        "query": "London, United Kingdom",
        "type": "City"
    }],
    "weather": [{
        "date": "2014-01-16",
        "precipMM": "1.6",
        "tempMaxC": "11",
        "tempMaxF": "52",
        "tempMinC": "5",
        "tempMinF": "41",
        "weatherCode": "116",
        "weatherDesc": [{
            "value": "Partly Cloudy"
        }],
        "weatherIconUrl": [{
            "value": "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png"
        }],
        "winddir16Point": "S",
        "winddirDegree": "191",
        "winddirection": "S",
        "windspeedKmph": "30",
        "windspeedMiles": "19"
    }, {
        "date": "2014-01-17",
        "precipMM": "1.3",
        "tempMaxC": "10",
        "tempMaxF": "50",
        "tempMinC": "5",
        "tempMinF": "42",
        "weatherCode": "116",
        "weatherDesc": [{
            "value": "Partly Cloudy"
        }],
        "weatherIconUrl": [{
            "value": "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png"
        }],
        "winddir16Point": "SSW",
        "winddirDegree": "202",
        "winddirection": "SSW",
        "windspeedKmph": "27",
        "windspeedMiles": "17"
    }, {
        "date": "2014-01-18",
        "precipMM": "2.7",
        "tempMaxC": "10",
        "tempMaxF": "49",
        "tempMinC": "4",
        "tempMinF": "39",
        "weatherCode": "266",
        "weatherDesc": [{
            "value": "Light drizzle"
        }],
        "weatherIconUrl": [{
            "value": "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0017_cloudy_with_light_rain.png"
        }],
        "winddir16Point": "S",
        "winddirDegree": "177",
        "winddirection": "S",
        "windspeedKmph": "23",
        "windspeedMiles": "15"
    }, {
        "date": "2014-01-19",
        "precipMM": "1.0",
        "tempMaxC": "8",
        "tempMaxF": "46",
        "tempMinC": "5",
        "tempMinF": "41",
        "weatherCode": "122",
        "weatherDesc": [{
            "value": "Overcast"
        }],
        "weatherIconUrl": [{
            "value": "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png"
        }],
        "winddir16Point": "ESE",
        "winddirDegree": "110",
        "winddirection": "ESE",
        "windspeedKmph": "13",
        "windspeedMiles": "8"
    }, {
        "date": "2014-01-20",
        "precipMM": "0.4",
        "tempMaxC": "8",
        "tempMaxF": "47",
        "tempMinC": "1",
        "tempMinF": "34",
        "weatherCode": "116",
        "weatherDesc": [{
            "value": "Partly Cloudy"
        }],
        "weatherIconUrl": [{
            "value": "http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png"
        }],
        "winddir16Point": "NW",
        "winddirDegree": "311",
        "winddirection": "NW",
        "windspeedKmph": "12",
        "windspeedMiles": "7"
    }]
}
}

Weather::undefined
EN

回答 2

Stack Overflow用户

发布于 2014-01-16 17:27:17

我想你需要这样访问天气:

代码语言:javascript
运行
复制
 console.log("Weather::"+datais.data.weather);

您可以使用onlne json查看器来查看数据的结构:例如:http://jsonviewer.stack.hu/或查看浏览器控制台。例如,firebug可以将json数据显示为树。

而且你不需要JSON.stringify。Angular为您做到了这一点:

代码语言:javascript
运行
复制
 .success(function(data) {
        console.log(data.data.weather);
 })
票数 0
EN

Stack Overflow用户

发布于 2014-01-16 17:28:32

在这里,你的datais变量被赋予了数据。如果正确检查返回的datais.data.weather数据,您可以在天气(Datais)中看到;您将能够访问json中的天气属性。尝尝这个

代码语言:javascript
运行
复制
console.log("Weather::"+datais.data.weather);

您将能够访问天气属性。进一步的天气属性是一个数组,它具有从今天到即将到来的4天的气象值。您可以在循环中访问它们

代码语言:javascript
运行
复制
for(i=0; i<datais.data.weather.length; i++){
 console.log(datais.data.weather[i]);
}

或者例如访问今天的天气数据:

代码语言:javascript
运行
复制
console.log(datais.data.weather[0].date);
console.log(datais.data.weather[0].tempMaxC);
console.log(datais.data.weather[0].tempMinC);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21157710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档