in your template
<li *ngFor="let entry of monObjet | keys">
{{entry.key}} : <b> {{entry.value}}</b>
</li>| import { Pipe, PipeTransform } from '@angular/core'; | |
| @Pipe({ name: 'keys' }) | |
| export class KeysPipe implements PipeTransform { | |
| transform(value, args: string[]): any { | |
| return this.convert(value); | |
| } | |
| public convert = function (value) { | |
| let keys = []; | |
| for (let key in value) { | |
| if (value[key] instanceof Array && value[key].length > 0 && this.isAnObject(value[key][0])) { | |
| value[key].forEach(e =>{ | |
| let tempKeys = this.convert(e); | |
| let i=0; | |
| tempKeys.forEach(f => { | |
| keys.push({ key: key + "["+i+"]." + f['key'], value: f["value"] }); | |
| i++; | |
| }); | |
| }); | |
| } else if (this.isAnObject(value[key])) { | |
| let tempKeys = this.convert(value[key]); | |
| tempKeys.forEach(element => { | |
| keys.push({ key: key + "." + element['key'], value: element["value"] }); | |
| }); | |
| } else { | |
| keys.push({ key: key, value: value[key] }); | |
| } | |
| } | |
| return keys; | |
| } | |
| public isAnObject = function (value) { | |
| return Object.prototype.toString.call(value) === '[object Object]'; | |
| } | |
| } |