2014-10-09 175 views
0

我有這樣的JSON數據,我從服務器可以在javascript如何創建數據模型動態

var mydata = JSON.parse('["X","Y","Z"]'); 

下面我在JavaScript中有如下數據模型..

var mySchemasList = { 
    schemas: [new SelectSchemaModel("A", false), 
       new SelectSchemaModel("B", false), 
       new SelectSchemaModel("C", false) 
      ] 
}; 

我要創建這個模型動態地通過從MYDATA獲取數據( 'A', 'B', 'C')..

任何幫助真誠理解..

謝謝

+0

您需要讓您的JavaScript以支持的任何協議與您的後端通話。 – 2014-10-09 05:04:25

+0

我建議使基於休息的Web服務返回數據(以JSON/XML的形式),並通過javascript調用web服務,然後從JSOn創建相應的模型。 – Innovation 2014-10-09 05:07:19

+0

@Innovation我可以從後端發送json數據,但我需要幫助從JSON創建模型在JavaScript中 – Arnab 2014-10-09 05:25:58

回答

1

難道你不能只是做下面的事嗎?

var i 
var mySchemaList = {schemas:[]}; 
for (i = 0; i < mydata.length; i++) { 
    mySchemaList.schemas.push(new SelectSchemaModel(mydata[i], false)); 
} 
1

在JavaScript中,對象和數組使用.[]運營商訪問。下面的兩行不完全一樣的東西:

mySchemasList.schemas; 
mySchemasList['schemas']; 

此外,像在其自己的一個變量的對象或陣列的行爲的每個成員。所以,你可以指定值,對象或數組對他們說:

mySchemasList = {}; 

當一個變量(或屬性)的聲明,但沒有分配任何東西的價值是undefined。所以,你可以通過簡單的檢查:

if (mySchemasList === undefined) mySchemasList = {}; 

或者您可以使用||短路,因爲undefined被認爲是假的:

mySchemasList = mySchemasList || {}; 

把這個都在一起,下面的兩個例子不正是同樣的事情。

實施例1:

var mySchemasList = { 
    schemas : [] 
} 

實施例2:

var mySchemasList = {}; 
mySchemasList.schemas = []; 

既然已經創建了mySchemasList.schemas陣列就可以開始推動其他對象到其中:

mySchemasList.schemas.push(new SelectSchemaModel("A", false)); 
mySchemasList.schemas.push(new SelectSchemaModel("B", false)); 
mySchemasList.schemas.push(new SelectSchemaModel("C", false)); 

將它封裝在解析JSON數據的for循環中,你可以這樣做:

var mydata = JSON.parse(ajax.responseText); 
for (var i=0; i<mydata.length; i++) { 
    mySchemasList.schemas.push(new SelectSchemaModel(mydata[i],false)); 
}