2013-07-29 95 views
1

我成功創建然後保存對象作爲JSON字符串使用下面的代碼遍歷列表,並添加項目到myObject的變量,然後在本地存儲變量jQuery對象保存對象到本地存儲變量。JSON對象結構

var x =$("[name=checklist]").length; 
var myObject = {}; 
myObject.Vehicle_Check = [x]; 

$("[name=checklist]").each(function(index){ 
    if (index >0) { 
    myObject.Vehicle_Check.push({}); 
var PT = $("[name=problemtxt_" + index + "]").val(); //the fault label 
var CL = $("[name=checklbl_" + index + "]").text(); //the question 
var d = $("[name=optiongroup_" + index + "]:checked").val(); 
    if (d == 'Item 1') { 
     d='OK' 
    } 
    else if (d == 'Item 2') { 
     d='Fault' 
     localStorage.setItem('fault', 1); 
    } 
    myObject.Vehicle_Check[index].question = CL; 
    myObject.Vehicle_Check[index].result = d; 
    myObject.Vehicle_Check[index].Fault = PT; 
    } 
}); 

localStorage.setItem('results' ,JSON.stringify(myObject)); 

我試圖通過構建對象一個項目在同一時間將其保存到本地存儲變量然後當我想增加一個項目獲取對象從可變後使用parseJSON並添加做同樣的附加項目然後保存回變量。我沒有正確地工作。我應該如何正確構建這個?

Initiate the object: 

var myObject = {}; 
myObject.Vehicle_Check = [18]; 
myObject.Vehicle_Check.push({}); 
localStorage.setItem('checkobject',JSON.stringify(myObject)); 

Add to the object: 

var myObject = jQuery.parseJSON(localStorage.getItem('checkobject')); 
       myObject.Vehicle_Check.push({}); 
       myObject.Vehicle_Check[I].question = 'First test!'; 
       myObject.Vehicle_Check[I].result = 'OK'; 
       myObject.Vehicle_Check[I].Fault = 'none'; 
      localStorage.setItem('checkobject',JSON.stringify(myObject)) 
+0

工作得很好,一旦我正確地定義'I' –

+0

你爲什麼不變量設置爲新的子對象,填寫其屬性,然後將其推到數組? – Barmar

回答

1

您還沒有定義I。你可能會做這樣的事情,而不是讓你不用擔心指數:

var myObject = {}; 
myObject.Vehicle_Check = []; 
localStorage.setItem('checkobject', JSON.stringify(myObject)); 

...

var myObject = jQuery.parseJSON(localStorage.getItem('checkobject')); 
var next = { 
    question: 'First test!', 
    result: 'OK', 
    Fault: 'none' 
}; 
myObject.Vehicle_Check.push(next); 
localStorage.setItem('checkobject', JSON.stringify(myObject)); 

編輯 - 這可以進一步簡化,根據您的使用:

myObject.Vehicle_Check.push({ 
    question: 'First test!', 
    result: 'OK', 
    Fault: 'none' 
}); 
+0

對不起,我定義了我,但沒有包含代碼!我會隨你的代碼一起去的 - 謝謝。 – joebohen

+0

感謝的我要求什麼代碼, – joebohen

+0

很高興我能幫忙。 –