로컬 저장소에 개체 저장
다음과 같은 어레이가 있습니다.
[{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
'programing' 카테고리의 다른 글
CSS를 사용하여 Ul 들여쓰기 제거 (0) | 2023.08.17 |
---|---|
이것이 ES6에서 개체를 복제하는 좋은 방법입니까? (0) | 2023.08.17 |
특정 사용자로부터 순위, 이름 및 점수를 얻기 위한 SQL 쿼리 (0) | 2023.08.17 |
MariaDB 이미 시스템 버전 테이블 처리 방법 (0) | 2023.08.17 |
PHP의 세트에 대한 내장 지원? (0) | 2023.08.17 |