js中 sessionStorage 如何存对象
时间: 2024-03-14 10:39:09 浏览: 23
在JavaScript中,sessionStorage是一个用于存储键值对的对象,它可以存储字符串类型的数据。如果要存储对象,需要将对象转换为字符串类型,然后再存储到sessionStorage中。
可以使用JSON.stringify()方法将对象转换为字符串,然后使用sessionStorage.setItem()方法将字符串存储到sessionStorage中。例如:
```
var obj = {name: "John", age: 30};
var str = JSON.stringify(obj);
sessionStorage.setItem("myObj", str);
```
这样就将一个对象存储到了sessionStorage中。如果需要获取存储的对象,可以使用sessionStorage.getItem()方法获取存储的字符串,然后使用JSON.parse()方法将字符串转换为对象。例如:
```
var str = sessionStorage.getItem("myObj");
var obj = JSON.parse(str);
console.log(obj.name); // 输出 "John"
```
相关问题
sessionStorage.setItem存对象
sessionStorage.setItem() 方法只能用于存储字符串类型的数据,无法直接存储 JavaScript 对象。但是你可以使用 JSON.stringify() 方法将对象转换为字符串,然后再存储到 sessionStorage 中。例如:
```javascript
// 创建一个对象
var obj = { name: "Alice", age: 25 };
// 将对象转换为字符串
var objString = JSON.stringify(obj);
// 存储到 sessionStorage
sessionStorage.setItem("myObject", objString);
```
然后,你可以使用 sessionStorage.getItem() 方法获取存储的字符串,并使用 JSON.parse() 方法将其转换回对象:
```javascript
// 从 sessionStorage 获取存储的字符串
var storedObject = sessionStorage.getItem("myObject");
// 将字符串转换为对象
var parsedObject = JSON.parse(storedObject);
console.log(parsedObject.name); // 输出 "Alice"
console.log(parsedObject.age); // 输出 25
```
这样,你就可以通过将对象转换为字符串的方式,实现在 sessionStorage 中存储和读取对象了。
sessionstorage存map
SessionStorage 中只能存储字符串类型的数据,因此需要将 Map 转换为字符串再存储。可以使用 JSON.stringify() 方法将 Map 转换为 JSON 字符串,然后使用 SessionStorage.setItem() 方法将字符串存储到 SessionStorage 中。
示例代码如下:
```javascript
// 创建一个 Map
const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
// 将 Map 转换为 JSON 字符串并存储到 SessionStorage 中
const jsonString = JSON.stringify([...myMap]);
window.sessionStorage.setItem('myMap', jsonString);
// 从 SessionStorage 中读取 JSON 字符串并将其转换为 Map
const storedJsonString = window.sessionStorage.getItem('myMap');
const storedEntries = JSON.parse(storedJsonString);
const storedMap = new Map(storedEntries);
```
需要注意的是,如果 Map 中的值不是基本类型,而是对象、数组等复杂类型,则需要对这些值单独进行转换。同时,如果 Map 中的键不是字符串类型,则需要在转换为 JSON 字符串时指定键的转换方式。例如,可以将键和值都转换为字符串类型,然后存储到数组中。示例代码如下:
```javascript
const myMap = new Map();
myMap.set({ name: 'Alice' }, [1, 2, 3]);
const jsonString = JSON.stringify([...myMap], (key, value) => [key.toString(), value]);
window.sessionStorage.setItem('myMap', jsonString);
const storedJsonString = window.sessionStorage.getItem('myMap');
const storedEntries = JSON.parse(storedJsonString, (key, value) => [JSON.parse(key), value]);
const storedMap = new Map(storedEntries);
```
在解析 JSON 字符串时,需要使用一个 reviver 函数将键和值恢复为原来的类型。该函数接受两个参数,分别是当前正在处理的键和值。在本例中,我们将键解析为对象类型,将值保持不变。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)