gpt4 book ai didi

javascript - 如何在不获取空对象的情况下进行 JSON.stringify 和 JSON.parse?

转载 作者:可可西里 更新时间:2023-11-01 13:13:08 25 4
gpt4 key购买 nike

我问这个问题的原因是因为我想为我的对象使用 LocalStorage。您可能知道,在使用 LocalStorage 时,您必须对对象进行 JSON.stringify,然后将它们解析回 javascript 对象。

我正在尝试使用方法对对象进行 JSON.stringify,然后将其解析回来,但我得到的只是一个空对象。

请看一下这段代码。

Person.js

function Person(name, telePhone) {

this.getName = function () {
return name;
}

this.setName = function (_name) {
name = _name;
}

this.getTelePhone = function () {
return telePhone;
}

this.setTelePhone = function (_telePhone) {
telepPhone = _telePhone;
}
};

Javascript.js

window.onload = function () {

var name = "John";
var telePhone = "073-2335662";

var personObject = new Person(name, telePhone);

console.log(personObject);
// returns: Person
console.log(personObject.getName());
//returns: John

var test = JSON.stringify(personObject);
var newPersonObject = JSON.parse(test);

console.log(newPersonObject);
//returns: Object
console.log(newPersonObject.getName());
//returns: Uncaught TypeError: Object #<Object> has no method 'getName'
};

有什么建议说明为什么这个 Person 对象在 JSON.stringify 和 JSON.parse 之后是空的并且丢失了它的所有方法吗?

最佳答案

函数不是有效的 JSON 数据类型。当然,函数持有的变量范围不能被序列化。

您需要将数据直接存储在对象上以对其进行序列化。

JSON 具有“对象”(键/值对) 和“数组”(有序列表) 样式结构,以及字符串numbertruefalsenull

http://json.org/

关于javascript - 如何在不获取空对象的情况下进行 JSON.stringify 和 JSON.parse?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16493048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com