Javascript JSON.stringify()和JSON.parse()是否更改了数据类型?

Javascript JSON.stringify()和JSON.parse()是否更改了数据类型?,javascript,json,Javascript,Json,JSON不支持除object、array、null、string、number和boolean之外的其他类型 如果您知道JSON中的内容,那么可以在解析过程中使用一个reviver函数。就您的例子而言,这就足够了: JSON.parse(string, (k, v) => v.hasOwnProperty('site') ? new Account(v.site, v.login, v.pass)

JSON不支持除object、array、null、string、number和boolean之外的其他类型

如果您知道JSON中的内容,那么可以在解析过程中使用一个reviver函数。就您的例子而言,这就足够了:

JSON.parse(string, (k, v) => v.hasOwnProperty('site')
                             ? new Account(v.site, v.login, v.pass)
                             : v);

JavaScript有两种有用的方法来处理JSON格式的内容: JSON.stringify()&JSON.parse(),这对成对学习很有用。 stringify()获取一个JavaScript对象,然后将其转换为JSON字符串。
parse()获取一个JSON字符串,然后将其转换为JavaScript对象。

我从您的问题中了解到的是,您希望将解析后的JSON字符串转换为您的帐户对象原型。为了实现这一点,您可以使用以下代码,因为JSON.parse()返回Javascript对象,我们显式地需要将其转换为自定义对象原型(即您的示例中的帐户)

const string=JSON.stringify(帐户)
console.log(字符串);
const parseString=JSON.parse(字符串);
objectFromJson=函数(parseString){
var-temp=[];
for(var i=0;i
传入一个自定义参数,但请注意,它不是一个特别健壮的API
const string = JSON.stringify(accounts)
console.log(string);

const parseString = JSON.parse(string);

objectFromJson = function (parseString){
    var temp = [];
    for( var i = 0; i < parseString.length; i++) {
       temp.push(new Account (parseString[i].site, parseString[i].login, parseString[i].pass));
    }
    return temp;
};

var accountArray = objectFromJson(parseString);
console.log('AFTER', accountArray);