this question has answer here:
how can iterate on object using typescript , being able access key , value?
my json object looks this:
{ "clients": { "123abc": { "forename": "simon", "surname": "sample" }, "456def": { "forename": "charlie", "surname": "brown" } } }
the clients object filled made of client models looking like:
export class clientmodel { id:string; forename:string; surname:string; constructor( private id:string, private forename:string, private surname:string ) { this.id = id; this.forename = forename; this.surname = surname; } }
given:
var = { "clients": { "123abc": { "forename": "simon", "surname": "sample" }, "456def": { "forename": "charlie", "surname": "brown" } } }; class clientmodel { constructor( private id:string, private forename:string, private surname:string ) {} }
here how array of clientmodel
objects:
var clientlist: clientmodel[] = object.getownpropertynames(a.clients) .map((key: string) => new clientmodel(key, a.clients[key].forename, a.clients[key].surname));
...and here how map string
(id) clientmodel
:
var clientmap: { [key: string]: clientmodel } = object.getownpropertynames(a.clients) .reduce((map: any, key: string) => { map[key] = new clientmodel(key, a.clients[key].forename, a.clients[key].surname); return map; }, {});
after comment basarat , taking closer @ object.keys()
, object.keys
more appropriate use here object.getownpropertynames()
. difference latter returns non-enumerable properties too. has no practical difference in particular case, should make intent of code more explicit. else remains same.