2017-02-03 2 views
12

У меня есть массив как это:Сохранение объектов в LocalStorage

[{name:"test", time:"Date 2017-02-03T08:38:04.449Z"}]. 

я хранил его в LocalStorage и когда я извлечения данных из локального хранилища я получил значение

[object, object] 

Как я могу решить эту проблему вопрос. config.ts

import { Injectable } from "@angular/core"; 

@Injectable() 
export class TokenManager { 

public tokenKey: string = 'app_token'; 

constructor() { } 


store(content) { 
    var contentData; 

    console.log("inside localstorsge store:", content); 
    contentData = content.map(
     (data) => data.name 
    ) 
    console.log("contentData:", contentData) 
    localStorage.setItem(this.tokenKey, content); 
} 

retrieve() { 
    console.log("inside localstorage"); 
    let storedToken: any = localStorage.getItem(this.tokenKey); 
    console.log("storedToken:", storedToken);=====>here this console is [object object] 
    if (!storedToken) throw 'no token found'; 
    return storedToken; 
} 


} 
+1

вы пробовали это 'JSON.stringify (storedToken)'? –

+2

JSON.stringyfy объект перед сохранением в localstorage и проанализировать его обратно при получении с помощью JSON.parse. –

+0

@ Satpal, что такое OP? –

ответ

24

локальное хранилище ограничено обрабатывать только пары строк ключ/значение, которые вы можете сделать, как показано ниже, используя JSON.stringify и при получении значения JSON.parse

var testObject ={name:"test", time:"Date 2017-02-03T08:38:04.449Z"}; 

Поместите объект в хранилище:

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

Извлечь объект из хранилища:

var retrievedObject = localStorage.getItem('testObject'); 

console.log('retrievedObject: ', JSON.parse(retrievedObject)); 
+0

он отлично работает за ваш ответ. но в то время как отображение этого я получил каждый, как струна, как эффект: [ эффекта: { эффекта: « эффекта: п эффекта: эффекта: м эффекта: е эффекта:» как я могу решить эту проблему? – Khushi

+0

не могли бы вы обновить свой вопрос, чтобы выяснить, что происходит? – Curiousdev

0

Легко хранить объекты в локальном хранилище с помощью localDataStorage, где вы можете прозрачно установить/получить любой из следующих «типов»: Array, Boolean, Date, Float, Integer, Null, Object или String.

[ОТКАЗ] Я являюсь автором утилиты [/ ОТКАЗ]

Примеры:

localDataStorage.set('key1', 'Belgian') 
localDataStorage.set('key2', 1200.0047) 
localDataStorage.set('key3', true) 
localDataStorage.set('key4', { 'RSK' : [1,'3',5,'7',9] }) 
localDataStorage.set('key5', null) 

localDataStorage.get('key1') --> 'Belgian' 
localDataStorage.get('key2') --> 1200.0047 
localDataStorage.get('key3') --> true 
localDataStorage.get('key4') --> Object {RSK: Array(5)} 
localDataStorage.get('key5') --> null 

Как вы можете видеть, примитивные ценности уважаются. Теперь, в вашем случае, мы бы сделали это:

>localDataStorage.set('testObject', { name : 'test', time : new Date('2017-02-03T08:38:04.449Z') }) 

Обратите внимание, что вы можете прямо выразить объект. (. Все stringamication делается в фоновом режиме для вас) Когда мы извлечь ключ, мы получаем:

>localDataStorage.get('testObject') --> 
>Object {name: "test", time: "2017-02-03T08:38:04.449Z"} 
Смежные вопросы