2014-03-31 109 views
2

我正在嘗試使用一個非常簡單的數據結構,但是不能正確理解它。json的Javascript數據結構

我有一個數組,看起來像:

[{"object":"name","context":"..."},{"object":"name","context":"..."}] 

假設這個結構被保存在一個變量名object_list中

所有我想要的是在基礎結構中添加額外的領域,所以我的目標會是這樣的:

[{"object":"name","context":"..."},{"object":"name","context":"..."}], 
additional_data : "data" 

在代碼方面,我想能夠:

var item = object_list[0]; 
var additional_data = object_list.additional_data; 

不能找到一種方法,添加到我的陣列額外的領域。

+0

你可以在一個數組中有一個對象或一個對象中的數組,但是一個對象不能是一個數組,反之亦然。我認爲你在混合它有點太多 –

回答

1

反映這是你在找什麼?

var object_list = [{"object":"name","context":"..."}]; 
object_list.additional_data = "data"; 

http://jsfiddle.net/V3yDb/

+0

似乎有效。由於某種原因,它不適用於我的案件,但它確實「解決」我試圖獲得的結果。 –

3

好吧,如果你目前擁有的數組:

var object_list = [{"object":"name","context":"..."},{"object":"name","context":"..."}]; 

你需要一個新的對象,與作爲一個屬性,另一個屬性:

var newObj = { 
    object_list: object_list, 
    additional_data: "data" 
} 

然後,你可以這樣做:

newObj.object_list; //array 
newObj.additional_data; //your data 

重要側面說明,因爲JS對象只是引用,改變什麼也將在newObj.object_list

+0

這是我想要避免..在你的建議,以達到額外的數據,我需要做newObj.additional_data和達到我需要newObj.object_list數組。我希望能夠通過object_list.additional_data達到additional_data。 –

+0

@ Nuno_147 - 你不能。這不是一個有效的JS對象'[],key:val'。正確的是'{key:[],key:val}' – tymeJV

+0

所以更正它我基本上需要在結構中命名我的列表,對吧? –

0

其實你可以做以下與JS數組。他們都是有效的,但很奇怪。

變種object_list中= [{ 「對象」: 「姓名」, 「上下文」: 「... 」},{「 對象 」:「 姓名」, 「上下文」: 「...」}] ;

object_list.field1 = '一些值';

object_list中[ 'FIELD2'] = '的某個其它值';

然後你可以使用object_list作爲通常的數組,也可以作爲一個對象。下面是一樣的。

object_list.field1

object_list中[ 'field1的']

它像與不同類型的鍵的地圖,你的情況整數和字符串。