2017-04-05 46 views
1

取JSON和解析,並將其推到一個數組後,我有:轉換和陣列到模型

[object, object] 

我想每個對象轉換爲如下的數據模型:

import { ItemModel } from './item.model'; 

export class TodolistModel { 
    name: string; 
    items: Array<ItemModel> = []; 
} 

我已經嘗試這樣的:

parsedTodolists.forEach(parsedTodolist => { 
     let loadChecklist = Object.assign(new TodolistModel(), parsedTodolist); } 

但是這會導致一個時髦的分配:

TodolistModel {0: Object, 1: Object, items: Array(0)} 

我試圖做到這一點:

[TodolistModel, TodolistModel] 

謝謝!

+0

看來你的'parsedTodolist'是一個數組。做一個'console.log(parsedTodolist)'看看我們有什麼。 – Diullei

+0

@Duulei這是正確的。你在想什麼? – user3934205

+0

如果你想在'TodolistModel'對象上將這個'parsedTodolist'作爲'items'屬性,你需要使用:'let loadChecklist = Object.assign(new TodolistModel(),{items:parsedTodolist});'但是,在這種情況下,我不知道你需要把'name'放在什麼位置。如果'parsedTodolist'上的每個項目都需要成爲'TodolistModel',那麼您需要做另一個foreach。我沒有足夠的關於你的邏輯的信息來給出一個好的答案。 – Diullei

回答

0

您是否試過映射數據?

const todoData = [{ /* ... */ }, { /* ... */ }]; 
const parsedTodoData = todoData.map((todo) => new TodolistModel(todo)); 
+0

我的文本編輯器抱怨「提供的參數與調用目標的任何簽名不匹配」:/ – user3934205

+0

您的JSON數據實際上是什麼樣的? '[object,object]'沒有多大用處。 – fubar

0

我提取的數據被保存爲模型。因此,我不需要將數據「轉換」回模型。它已經遵守模型參數。

E.g.

[TodolistModel, TodolistModel] 

已保存到數據庫。我把它,JSON解析它,有:

[Object, Object] 

然後我推到一個數組,並看到:

[Array (2)] 

我不該它,因爲它已經是一個陣列推到一個數組。我需要迭代並將每個對象推送到我的數組。

我誤以爲它有兩個區域:1.)它已經遵守模型,並且2.)JSON.parse創建一個數組!

希望這有助於someome :)