2015-03-20 3 views
0

У меня есть localStorage как строка JSON. Который выглядит так:обновление локального хранилища json.stringify

{"ttl":15778500,"now":1426846074300,"id":"1","name":"I am","id":"69"} 

Мне нужно изменить только значение для «id» и оставить другие, как есть.

Мой код выглядит следующим образом:

var dbget = JSON.parse(localStorage.getItem('localStorage') || "0"); 
dbget.id = 25; 

Но когда я пытаюсь сохранить это не работает.

localStorage.setItem('localStorage', JSON.stringify(dbget)); 

Не могли бы вы предложить, как я могу это сделать? Спасибо заранее.

+2

Не могли бы вы уточнить, что вы имеете в виду «не работает»? Сохраняет ли значение значение localstorage? Или сохраняется ли неправильное значение? Вы получаете ошибки в консоли? – JJJ

+0

Я нашел здесь свою проблему с двумя идентификаторами. Теперь он работает нормально. – qqruza

ответ

0

Моя JSON неверны и не должны иметь дублирующий ID:

{"ttl":15778500,"now":1426846074300,"id":"1","name":"I am","id2":"69"} 
2

У вас есть дубликат id в вашем JSON

Это происходит потому, что первый раз нет объекта JSON и dbget имеет только 0, что приведет к ошибке и объект не добавлено, попробуйте изменить инициализацию, как,

// Add empty object {} in place of "0" -------------------------v 
var dbget = JSON.parse(localStorage.getItem('localStorage') || {}); 
dbget.id = 25; 
+0

Спасибо @RohanKumar – qqruza

0

проблема была в моей исходной строки с двумя идентификаторами:

{"ttl":15778500,"now":1426846074300,"id":"1","name":"I am","id":"69"} 

Когда я изменил один идентификатор, чтобы id2 его вес как предполагалось.

+0

Возможно, вы все еще хотите принять ответ Рохана! – callback