Tengo dificultades para generar una tabla en Angular2 desde JSON porque quiero pivotar los datos JSON y no puedo crear una interfaz para ellos (el método que normalmente uso)
Un extracto del JSON que estoy usando está debajo del cual convierto qué
[ { "ValueDate": "2017-04-26T14:16:00", "AccountName": "CASHAUD", "Holding": 318622.53 }, { "ValueDate": "2017-04-26T14:16:00", "AccountName": "CASHCAD", "Holding": 7195 }, { "ValueDate": "2017-04-26T14:16:00", "AccountName": "CASHEUR", "Holding": 5077.97 }, { "ValueDate": "2017-04-26T14:16:00", "AccountName": "CASHGBP", "Holding": 19625 }, { "ValueDate": "2017-04-26T14:16:00", "AccountName": "CASHJPY", "Holding": 16463 }, { "ValueDate": "2017-04-26T14:16:00", "AccountName": "CASHNZD", "Holding": 601.56 }, { "ValueDate": "2017-04-26T14:16:00", "AccountName": "CASHSGD", "Holding": 1000 }, { "ValueDate": "2017-04-26T14:16:00", "AccountName": "CASHUSD", "Holding": 1716906.25 }, { "ValueDate": "2017-04-27T14:16:00", "AccountName": "CASHAUD", "Holding": 318622.53 }, { "ValueDate": "2017-04-27T14:16:00", "AccountName": "CASHCAD", "Holding": 7195 }, { "ValueDate": "2017-04-27T14:16:00", "AccountName": "CASHEUR", "Holding": 5077.97 }, { "ValueDate": "2017-04-27T14:16:00", "AccountName": "CASHGBP", "Holding": 19625 }, { "ValueDate": "2017-04-27T14:16:00", "AccountName": "CASHJPY", "Holding": 16463 }, { "ValueDate": "2017-04-27T14:16:00", "AccountName": "CASHNZD", "Holding": 601.56 }, { "ValueDate": "2017-04-27T14:16:00", "AccountName": "CASHSGD", "Holding": 1000 }, { "ValueDate": "2017-04-27T14:16:00", "AccountName": "CASHUSD", "Holding": 1720781.25 } ]Utilicé el siguiente tutorial http://techbrij.com/convert-column-to-row-javascript-array-pivot para girar la matriz JSON que da como resultado una matriz de matrices
no es un mal resultado
los encabezados siempre están en [i][0] los datos siempre están en [i + 1][j]
¿Hay alguna idea sobre la forma en que podría recorrer estas matrices para crear ahora un objeto u otra matriz a partir de la cual podría construir una tabla, por favor?
Cree una nueva matriz con tres filas (que representen los valores ValueDate, AccountName y Holding) e itere sobre los valores originales:
source = [{...}, {...} ... ]; result = [[], [], []]; source.forEach((row, index) => { result[0][index] = row.ValueDate; result[1][index] = row.AccountName; result[2][index] = row.Holding; });Consulte el siguiente ejemplo de Plunker: https://plnkr.co/edit/15ZmVUxhEyPLTlDmHCLb?p=preview
puede integrar pivotTable.js con Angular2. Es bastante fácil. Si eliges esta opción, podría ayudarte. Salud.