2013-07-29 96 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

很高兴我能帮忙。 –