programing

로컬 저장소에 개체 저장

javaba 2023. 8. 17. 23:33
반응형

로컬 저장소에 개체 저장

다음과 같은 어레이가 있습니다.

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

저장해 두었습니다.localstorage데이터를 검색할 때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;
  }

}

로컬 스토리지는 문자열 키/값 쌍만 처리하도록 제한됩니다. 아래와 같이 사용할 수 있습니다.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));

대답하기에는 조금 늦었지만, 미래의 시청자들이 참고로 javascript 사용 객체를 사용할 수 있을 때까지 대답하고 싶습니다. 그러면 우리는 객체를 localStorage에 저장할 때 실제로 객체의 내용이 아닌 객체의 주소를 저장합니다! 그렇다면 객체 콘텐츠를 저장하고 싶다면 아래와 같이 해야 합니다.

다음과 같은 저장:

localStorage.setItem('my_item', JSON.stringify(my_object));   

다음과 같이 사용합니다.

var my_object = JSON.parse(localStorage.getItem('my_item'));

도움이 되기를 바랍니다 :)

문자열 형식이 없으면 무언가를 저장할 수 없습니다.

LocalStorage는 항상 키와 값을 문자열 형식으로 저장합니다.

그렇기 때문에 데이터를 Array 또는 Object와 상관없이 문자열로 변환해야 합니다.

먼저 JSON.stringify() 메서드를 사용하여 데이터를 localStorage에 저장합니다.

var myObj = [{name:"test", time:"Date 2017-02-03T08:38:04.449Z"}];
localStorage.setItem('item', JSON.stringify(myObj));

그런 다음 데이터를 검색하려면 String to Object를 다시 구문 분석해야 합니다.

var getObj = JSON.parse(localStorage.getItem('item'));

localDataStorage를 사용하면 다음과 같은 "유형"을 투명하게 설정하거나 가져올 수 있는 로컬 스토리지에 개체를 쉽게 저장할 수 있습니다.배열, 부울, 날짜, 부동, 정수, Null, 개체 또는 문자열.

[DISCLAIMER] 유틸리티 [/DISCLAIMER]의 작성자입니다.

예:

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

객체를 쉽게 표현할 수 있습니다. (모든 문자열 애니메이션은 백그라운드에서 수행됩니다.)키를 검색하면 다음을 얻을 수 있습니다.

>localDataStorage.get( 'testObject' ) -->
>Object {name: "test", time: "2017-02-03T08:38:04.449Z"}

언급URL : https://stackoverflow.com/questions/42020577/storing-objects-in-localstorage

반응형