Je réalise une application AngularJS 2 avec la version bêta. Je souhaite afficher une représentation JSON d'un objet dans ma page, mais elle affiche [Object Object]
et non {key1:value1 ....}
Du composant que je peux utiliser:
get example() {return JSON.stringify(this.myObject)};
puis dans le modèle:
{{example}}
mais si j'ai un tableau d'objets et que je voudrais imprimer une liste de ces objets, comment puis-je le faire?
En utilisant:
<ul>
<li *ngFor="#obj of myArray">{{obj}}</li>
</ul>
aboutit à quelque chose comme:
- [Objet objet] - [Objet objet] - [Objet objet] - [Objet objet]
etc. Existe-t-il un moyen de les afficher en tant que JSON?
Si vous voulez voir ce que vous avez à l'intérieur d'un objet dans votre application Web, utilisez le tuyau json dans un modèle HTML de composant, par exemple:
<li *ngFor="let obj of myArray">{{obj | json}}</li>
Testé et valide avec Angular 4.3.2.
Nous pouvons utiliser angular pipe json
{{ jsonObject | json }}
Pour parcourir l'objet JSON: dans Angluar (6.0.0+), ils fournissent maintenant le canal keyvalue
:
<div *ngFor="let item of object| keyvalue">
{{ item.key }} - {{ item.value }}
</div>
Pour afficher simplement JSON
{{ object | json }}
Le déchargement de contenu d'objet au format JSON peut être réalisé sans utiliser ngFor
. Exemple:
Object
export class SomeComponent implements OnInit {
public theObject: any = {
simpleProp: 1,
complexProp: {
InnerProp1: "test1",
InnerProp2: "test2"
},
arrayProp: [1, 2, 3, 4]
};
Balisage
<div [innerHTML]="theObject | json"></div>
Sortie (parcouru par un beautifier pour une meilleure lisibilité, sinon il est sorti sur une seule ligne)
{
"simpleProp": 1,
"complexProp": {
"InnerProp1": "test1",
"InnerProp2": "test2"
},
"arrayProp": [
1,
2,
3,
4
]
}
J'ai également découvert un formateur et un visualiseur JSON qui affichent des données JSON plus volumineuses, plus lisibles (semblable à l'extension JSONView Chrome): https://www.npmjs.com/package/ngx-json- spectateur
<ngx-json-viewer [json]="someObject" [expanded]="false"></ngx-json-viewer>
Il y a 2 façons dont vous pouvez obtenir les valeurs: -
<li *ngFor="let obj of myArray">{{obj | json}}</li>
Mise à jour des réponses des autres avec la nouvelle syntaxe:
<li *ngFor="let obj of myArray">{{obj | json}}</li>
si vous avez un tableau d'objet et que vous souhaitez les désérialiser en composant
get example() { this.arrayOfObject.map(i => JSON.stringify (i) ) };
que dans le modèle
<ul>
<li *ngFor="obj of example">{{obj}}</li>
</ul>
this.http.get<any>('http://192.168.1.15:4000/GetPriority')
.subscribe(response =>
{
this.records=JSON.stringify(response) // impoprtant
console.log("records"+this.records)
});