Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer valeurs tableau Json avec Angular 5

3 janvier 2018 à 14:48:10

Bonjour à tous,

Je débute dans l'Angular et me retrouve confronter à un problème.
J'ai un Json avec une arborescence comme celle-ci :

[
    {
        "type": "SERVICE",
        "nom": "aide-services",
        "equipes": [
            {
                "nom": "IKKI"
            }
        ],
        "serveurs": [
            {
                "id": 2,
                "nom": "vtcint2",
                "ip": "10.10.25.45",
                "indicateurs": {
                    "BUILDDATE": "2018-01-03T06:02:05Z",
                    "STATUS": "OK",
                    "VERSION": "2.2.0-SNAPSHOT"
                }
            }
        ]
    }
]

 Actuellement lorsque je fais par exemple {{app.type}} j'arrive à récupérer l'information car elle se trouve à la racine du json. Mais comment faire pour les sous-ensembles ?

Voici la structure actuelle de mon Json en typescript :

interface Applications {

  type : string;
  nom : string;
  equipes: Equipe[];
  serveurs: Serveur[];
}

interface Equipe {
  nom : string;
}

interface Serveur {
  id: number;
  nom: string;
  ip: string;
  indicateurs: Indicateurs[];
}

interface Indicateurs {
  BUILDDATE: Date;
  STATUS: string;
  VERSION: string;
}

Et voici comment je charge les données de mon API :

import { Component, OnInit } from '@angular/core';
import {HttpClient, HttpErrorResponse} from "@angular/common/http";
import 'rxjs/add/operator/map';
import {log} from "util";

@Component({
  selector: 'app-body',
  templateUrl: './body.component.html',
  styleUrls: ['../app.component.scss']
})
export class BodyComponent implements OnInit {
  url = 'http://localhost:8080/applications';
  public apps: Applications[];

  constructor(private http: HttpClient){

  }

  ngOnInit() {
    this.http.get(this.url).subscribe(result => {
        this.apps = result as Applications[];
        console.log(result);
      },
      (err: HttpErrorResponse) => {
        if (err.error instanceof Error) {
          console.log("Client-side error occured.");
        } else {
          console.log("Server-side error occured.");
        }
      });

  }


}

J'ai pas mal cherché sur les forums mais rien trouvé de similaire..
Merci d'avance pour votre aide ;)



  • Partager sur Facebook
  • Partager sur Twitter
14 novembre 2019 à 15:13:56

Bonjour, avez vous trouvé une solution à votre problème ?
  • Partager sur Facebook
  • Partager sur Twitter
15 novembre 2019 à 9:34:41

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL