[英]How do access a json object 0 using a javascript
我假裝做了holiday.log的holidays變量出現在列表中,而不是作為數組。 如何將此信息作為簡單對象獲取?
我的json:
[{
"2016-10-10":[{"name":"Columbus Day","country":"US","date":"2016-10-10"}],
"2016-10-31":[{"name":"Halloween","country":"US","date":"2016-10-31"}]
}]
我的應用:
app.factory('calendario', function($http) {
return{
getJobs : function() {
return $http({
url: '/app/components/home/controller/test_calendar.json',
method: 'GET'
})
}
}
});
控制器:
var holidays = [];
calendario.getJobs().success(function(data){
holidays.push(data[0]);
});
$scope.setDayContent = function(date) {
console.log(holidays);
};
例:
我要這個
我不想要這個
而不是列表使用地圖
holidays = {}
然后將項目放在地圖中,鍵上日期並為數組賦值:
holidays[data[0].date] = data[0].days;
但看起來你已經擁有了地圖,所以你可能只是直接保存數據而不是在列表中推送數據:
var holidays = {};
calendario.getJobs().success(function(data){
holidays=data;
});
$scope.setDayContent = function(date) {
console.log(holidays);
};
這個問題很容易......不是嗎?
var holidays = [];
calendario.getJobs().success(function(data){
holidays=data[0];
});
$scope.setDayContent = function(date) {
console.log(holidays);
};
你想扁平它,所以,尼克是對的,不要使用數組,而是使用dict / hash。 如果您的功能受到影響,您可以使用一些解決方法:
var holidays = [{
"2016-10-10":[{"name":"Columbus Day","country":"US","date":"2016-10-10"}],
"2016-10-31":[{"name":"Halloween","country":"US","date":"2016-10-31"}]
}];
var flatten_holidays = holidays.reduce(function(elem){return elem});
我不覺得它是特定的AngularJS問題,更像是常見的JavaScript。 對於你的例子,它將是:
var holidays = [];
calendario.getJobs().success(function(data){
holidays.push(data[0]);
});
$scope.setDayContent = function(date) {
console.log(holidays.reduce(function(elem){return elem}));
};
或者,如果首選是使用dict / hash:
var holidays = {};
calendario.getJobs().success(function(data){
//if data is: {"2016-10-10":[{"name":"Columbus day","country":"US","date":"2016-10-10"}]}
var key = Object.keys(data)[0];
var value = data[key];
holidays[key] = value;
});
$scope.setDayContent = function(date) {
console.log(holidays);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.