2016-01-18 9 views
41

Sto creando un'applicazione AngularJS 2 con la versione beta. Voglio mostrare una rappresentazione JSON di un oggetto nella mia pagina, ma dimostra [Object Object] e non {key1:value1 ....}Come visualizzare una rappresentazione JSON e non [Object Object] sullo schermo

dal componente posso usare:

get example() {return JSON.stringify(this.myObject)}; 

e poi nel modello:

{{example}} 

ma se ho una matrice di oggetti e vorrei stampare un elenco di questi oggetti, come posso farlo?

Usando:

<ul> 
    <li *ngFor="#obj of myArray">{{obj}}</li> 
</ul> 

risultati in qualcosa di simile:

 
- [Object Object] 
- [Object Object] 
- [Object Object] 
- [Object Object] 

e così via. C'è un modo per visualizzare quelli come JSON?

risposta

97

Se volete vedere quello che hai dentro un oggetto nel web app, quindi utilizzare il tubo JSON in un modello HTML componente, ad esempio:

<li *ngFor="let obj of myArray">{{obj | json}}</li> 

Testato e valido utilizzando angolare 4.3.2.

+0

Grazie, la pila JSON era ho bisogno ...dall'angolare 1 qualcosa è cambiato :) – foralobo

+0

@foralobo dovresti contrassegnare questa risposta come accettata quindi – LJH

+0

@foralobo Json Pipe era disponibile anche in Angular 1) –

4

Ci sono 2 modi in cui è possibile ottenere i valori: -

  1. accedere alla proprietà dell'oggetto usando la notazione punto (obj.property).
  2. Accedere alla proprietà dell'oggetto passando in valore chiave per esempio obj [ "proprietà"]
1
<li *ngFor="let obj of myArray">{{obj | json}}</li> 
+0

Lo stesso ha già risposto, e devi usare una parola chiave let prima di obj in * ngPer loop. –

1

Aggiornamento risposte degli altri con la nuova sintassi:

<li *ngFor="let obj of myArray">{{obj | json}}</li> 
4

contenuti oggetto di dumping come JSON può essere raggiunto senza usare ngFor. Esempio:

oggetto

export class SomeComponent implements OnInit { 
    public theObject: any = { 
     simpleProp: 1, 
     complexProp: { 
      InnerProp1: "test1", 
      InnerProp2: "test2" 
     }, 
     arrayProp: [1, 2, 3, 4] 
    }; 

Markup

<div [innerHTML]="theObject | json"></div> 

uscita (attraversava un beautifier per una migliore leggibilità, altrimenti viene emesso in una singola fila)

{ 
    "simpleProp": 1, 
    "complexProp": { 
    "InnerProp1": "test1", 
    "InnerProp2": "test2" 
    }, 
    "arrayProp": [ 
    1, 
    2, 
    3, 
    4 
    ] 
} 
10

Possiamo usare angolare tubo JSON

{{ jsonObject | json }} 
Problemi correlati