Структура объекта JSON

Я успешно создаю объект jquery, а затем сохраняю объект как строку json в локальной переменной хранилища, используя следующий код, который перебирает список и добавляет элементы в переменную myObject, а затем сохраняет объект в локальной переменной хранилища.

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))
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'
});

licensed under cc by-sa 3.0 with attribution.