JSON.stringify()方法第三个参数问题!
高洛峰
高洛峰 2016-11-10 15:58:13
0
2
699

利用stringify()方法,return underfined;可以过滤key为name的键,但是一下过滤了所有key为name的键,怎么控制只过滤company对象下面的name呢?

var person = {
            name: "张三",
            age: 14,
            sex: "男",
            tell: 5033453,
            birthday:new Date(),
            company:{
                name:"百度",
                contry:"中国",
                boss:"马化腾",
                state:1
            }
        };

        var jperson = JSON.stringify(person,function(key,value){
            switch (key) {
                case "name":
                    return undefined;
                case "state":
                    return value===1?"通过":"未通过";
                case "birthday":
                    return value.replace("T"," ").replace("Z","").substr(0,19);
                default:
                    return value;
            }

        });
        console.log(jperson);

结果:{"age":14,"sex":"男","tell":5033453,"birthday":"2016-05-10 10:48:54","company":{"contry":"中国","boss":"马化腾","state":"通过"}}

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
学霸

这是第二个参数吧!第三个参数是控制格式化缩进空格的。

三叔
var person = {
    name: "张三",
    age: 14,
    sex: "男",
    tell: 5033453,
    birthday:new Date(),
    company:{
        name:"百度",
        contry:"中国",
        boss:"马化腾",
        state:1
    }
};

var jperson = JSON.stringify(person,function(key,value){
    switch (key) {
        case "company":
            delete value["name"];
            return value;
        case "state":
            return value===1?"通过":"未通过";
        case "birthday":
            return value.replace("T"," ").replace("Z","").substr(0,19);
        default:
            return value;
    }

});
console.log(jperson);


Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal