2014-02-13 87 views
2

我有兩個json對象具有相似的鍵question連接兩個相同的密鑰json對象

var data = {"question":[{ 
    QuestionID : counter1, 
QuestionText: question1, 
    Choices:[{ChoiceID:100,Choice:"Yes",NextQuestionID:counter}, 
      {ChoiceID:101,Choice:"No",NextQuestionID:counter}], 
AnswerType: answer_type 
}]}; 


var data1 = {"question":[{ 
    QuestionID : counter2, 
QuestionText: question2, 
    Choices:[{ChoiceID:103,Choice:"Yes",NextQuestionID:counter}, 
      {ChoiceID:105,Choice:"No",NextQuestionID:counter}], 
AnswerType: answer_type 
}]}; 

我想他們concate與鍵「問題」一個JSON對象和值將是數組像下面

var final = {"question":[ 
{ 
    QuestionID : counter1, 
QuestionText: question1, 
    Choices:[{ChoiceID:100,Choice:"Yes",NextQuestionID:counter}, 
      {ChoiceID:101,Choice:"No",NextQuestionID:counter}], 
AnswerType: answer_type 
}, 
{ 
QuestionID : counter2, 
QuestionText: question2, 
    Choices:[{ChoiceID:103,Choice:"Yes",NextQuestionID:counter}, 
      {ChoiceID:105,Choice:"No",NextQuestionID:counter}], 
AnswerType: answer_type 
} 
]}; 

我嘗試過很多辦法及以下的方式接近我的目標,但外幣陣列數據DATA1和對象的

var jsons = new Array(); 
jsons.push(data); 
jsons.push(data1); 

我的問題將會解決如果我可以concate question:Objectquestion:Array[2]其中每個索引包含對象。最終的輸出將是question:Array[3]

任何幫助將不勝感激。 在此先感謝。

+0

這是JavaScript的,而不是JSON解決了這個問題。另外,請描述你已經嘗試了什麼,哪些不起作用。 – 2014-02-13 06:34:45

+1

如果它只是這兩個,你需要{'問題':[q1,q2]}只是做一個'var myObject = {'question':[data.question,data1.question]};' – algrebe

回答

0

您可以通過jQuery的

var final = $.merge(data, data1); 
0

那麼合併,你的代碼實際上是推兩個對象到一個列表中,這樣你們獲得對象的列表。在你的情況下,第一個元素是數據,第二個元素是data1。所以你不會真正得到所需的結果。

既然你希望對象試試這個

/* assuming data and data1 are created and both have the key question */ 
var final = {'question': [data.question, data1.question] }; 

// or using the concat feature 
var final = data.question.concat(data1.question); 
+0

我正在10來自用戶的問題,最後我想問':Array [10]',其中每個數組索引包含每個問題。第一個選項正常工作,直到輸入兩個問題'問題:Array [2]'。但是,如果問題超過兩個,它就變成像'question:Array [2]'其中Array [0]包含'Array [2]'並且Array [1]包含問題3作爲對象格式。 –

2

我通過

var index = 0; // number of question 
$.each(previousData.question,function(){ 
      finalArray[index] = previousData.question[index]; //contain array 
      index++; //here index is number of question 
}); 

finalArray[index] = data.question; 
data = {'question': finalArray }; // convert array to object 
相關問題