Javascript 如何从AngularJS中的太数组json获取信息

Javascript 如何从AngularJS中的太数组json获取信息,javascript,angularjs,arrays,json,Javascript,Angularjs,Arrays,Json,我有一个JSON文件,它有两个数组,其中包含一些我想在AngularJS网站上访问的数据。现在我只想从2个数组中得到一个对象 JSON数据 [ { "DailyForecasts": [ { "key": "32.48,44.46", "class": "forecast", "validDate": 1484236800, "maxTemp": 17, "minTemp": 3,

我有一个JSON文件,它有两个数组,其中包含一些我想在AngularJS网站上访问的数据。现在我只想从2个数组中得到一个对象

JSON数据

[
  {
    "DailyForecasts": [
      {
        "key": "32.48,44.46",
        "class": "forecast",
        "validDate": 1484236800,
        "maxTemp": 17,
        "minTemp": 3,
        "precip_type": "rain",
        "day": {
          "humid": 34,
          "wSpeed": 20,
          "wDir": 297,
          "pop": 0,
          "uv": 2,
          "icon": 34,
          "wDirText": "غرب-شمال غ",
          "phrase": "مشمس بصورة كلية",
          "bluntPhrase": "",
          "precip_type": "rain",
          "snwAccumPhrase": "",
          "snwAccumPhraseTerse": "",
          "extQual": "",
          "weatherCode": "3400"
        },
        "night": {
          "humid": 64,
          "wSpeed": 20,
          "wDir": 297,
          "pop": 0,
          "uv": 0,
          "icon": 33,
          "wDirText": "غرب-شمال غ",
          "phrase": "صافي بصورة كلية",
          "bluntPhrase": "",
          "precip_type": "precip",
          "snwAccumPhrase": "",
          "snwAccumPhraseTerse": "",
          "extQual": "",
          "weatherCode": "3300"
        }
      },
      {
        "key": "32.48,44.46",
        "class": "forecast",
        "validDate": 1484323200,
        "maxTemp": 17,
        "minTemp": 5,
        "precip_type": "rain",
        "day": {
          "humid": 48,
          "wSpeed": 14,
          "wDir": 287,
          "pop": 0,
          "uv": 3,
          "icon": 32,
          "wDirText": "غرب-شمال غ",
          "phrase": "مشمس",
          "bluntPhrase": "",
          "precip_type": "rain",
          "snwAccumPhrase": "",
          "snwAccumPhraseTerse": "",
          "extQual": "",
          "weatherCode": "3200"
        },
        "night": {
          "humid": 67,
          "wSpeed": 14,
          "wDir": 287,
          "pop": 10,
          "uv": 0,
          "icon": 31,
          "wDirText": "غرب-شمال غ",
          "phrase": "صافي",
          "bluntPhrase": "",
          "precip_type": "rain",
          "snwAccumPhrase": "",
          "snwAccumPhraseTerse": "",
          "extQual": "",
          "weatherCode": "3100"
        }
      }
    ]
  }
]
控制器代码

 app.controller('Hillahctlr', function($scope, $http, wind, arrivecss, windname, icons) {
     $scope.wind_dir = wind;
     $scope.icons = icons;
     $scope.arrivecss = arrivecss;
     $scope.windname = windname;
     var service_url = "/key=e88d1560-a740-102c-bafd-001321203584&units=m&locale=ar&cb=JSON_CALLBACK";
     $http.jsonp(service_url)
         .success(
             function(data) {
                 console.log(data);
                 yData = data.HourlyForecasts;
                 $scope.ali = [];
                 for (var i = 0; i < 9; i++)
                 {
                     $scope.ali[i] = {
                         dayes: yData[i].temp,
                     };
                 }
             })
 })
 }
app.controller('Hillahctlr',函数($scope,$http,wind,arrivecss,windname,icons){
$scope.wind_dir=风;
$scope.icons=图标;
$scope.arrivecss=arrivecss;
$scope.windname=windname;
var service_url=“/key=e88d1560-a740-102c-bafd-001321203584&units=m&locale=ar&cb=JSON_回调”;
$http.jsonp(服务url)
.成功(
功能(数据){
控制台日志(数据);
yData=data.hourlyforecast;
$scope.ali=[];
对于(变量i=0;i<9;i++)
{
$scope.ali[i]={
dayes:yData[i].温度,
};
}
})
})
}
并使用ng repeat在该数组中循环,但这对我不起作用,这是代码:

HTML

<div class="ForecastArea-Day Last weatherteble" ng-repeat="alis in dayes">
   {{alis.dayes}}
</div>

{{alis.dayes}
我收到此错误:
错误:未定义yData
请提供帮助?

尝试此操作

var alis = [];

 alis = {dayes: yData[i].temp,};
 $scope.ali = ali;

<div class="ForecastArea-Day Last weatherteble" ng-repeat="alis in ali.dayes"> 
{{alis.day}}
</div>
var-alis=[];
alis={dayes:yData[i].temp,};
$scope.ali=ali;
{{alis.day}

使用
yData=data[0]。小时预测。JSON以
[{“DailyForecast”:[
开头,这意味着它是一个对象数组



工作很好谢谢,对象日在
HourlyForecasts
当运行get
yData[i]时,日期
未定义的

看到我的短代码了吗

yday = data[0].DailyForecasts;
$scope.daily = [];
for(var i=0; i<9; i++) {
    $scope.daily[i] = {maxTemp: yData[i].maxTemp,
                       minTemp: yData[i].minTemp,
                       validDate: yData[i].validDate,
                       icon: yData[i]day.icon, };
}
还要确保将
yday
声明为变量:

 //yday = data[0].DailyForecasts;
 var yday = data[0].DailyForecasts;

如果没有
var
声明,它将处理全局命名空间。

您在哪里定义了
HourlyForecasts
?是的,请参见更新,数据。HourlyForecasts您的数据没有定义HourlyForecasts您可以通过console在浏览器上登录数据对象吗。log(数据)要检查datayData的正确结构是否应声明为$scope.yData=data.HourlyForecasts;或var-yData=data.HourlyForecasts;
错误:我未定义
工作正常,谢谢,当我尝试这样做时,对象
day
HourlyForecasts
.HourlyForecasts.day;
运行时获取
yData[i]。day未定义
请参阅我的简短代码
yday=data[0]。DailyForecasts;$scope.daily=[];for(var i=0;i
 //yday = data[0].DailyForecasts;
 var yday = data[0].DailyForecasts;