JSON @attributes Использование ионных или AngularJS

0

Мне трудно понять, как читать объект JSON, содержащий "@attributes".

контроллер:

    $http.get('http://nskfix.com/dev/BettingApp/Feeds/PLFeeds.php').then(function(response){
          console.log(response);
          getdata=response.data.Competitions.Competition.Matches.Match["@attributes"];

Каналы JSON

    {
@attributes: {
time: "1436244726"
},
Competitions: {
Competition: {
@attributes: {
name: "Premier League",
id: "ENG_1",
season: "2015/2016",
country: "England",
country_id: "ENG"
},
Matches: {
Match: [
{
@attributes: {
match_id: "03c44f8c67d215c39ea29ca821444c55",
match_name: "Southampton-Crystal Palace",
match_date: "2016-05-15 16:00:00"
}
},
{
@attributes: {
match_id: "5a46e12304adc60ee0ee365c2a83841e",
match_name: "Stoke-West Ham",
match_date: "2016-05-15 16:00:00",
match_status: "notstarted",
}
}

Но у меня проблема, она не питает данные. Пожалуйста, помогите мне!

Теги:

1 ответ

0

Похоже, что данные читаются как текст, поэтому вам нужно проанализировать его, чтобы он работал.

$http.get('http://nskfix.com/dev/BettingApp/Feeds/PLFeeds.php').then(function(response){
      var data = JSON.parse(response.data);
      var matches = data.Competitions.Competition.Matches.Match; 
      //An array of object with @attributes field
}

Затем вы можете получить информацию о матче из массива:

var matchName1 = matches[0]['@attributes'].match_name;
var matchName2 = matches[1]['@attributes'].match_name;

Для упрощения чтения я рекомендую вам сопоставить весь атрибут @attribute в массиве matches в новом массиве:

var matchFiltered = matches.map(function(item){ return item['@attributes'];  });
//Getting the properties is easier now
var matchName1 = matchFiltered[0].match_name;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню