js 将多层json对象 转化为一层json


const parse = data => {
    const uid = `uid_${Date.now()}`;
    const process = (input, prefix = '', json = {}) => {
        Object.keys(input).forEach(key => {
            const val = input[key];

            if (!json.hasOwnProperty(`${prefix}${key}.`)) {
                json[`${prefix}${key}.`] = uid;
            }

            if ('object' === typeof val && !Array.isArray(val) && !!val) {
                process(val, `${prefix}${key}.`, json);
            }
            else {
                json[`${prefix}${key}.`] = val;
            }
        });

        return json;
    };

    const json = process(data);
    const result = {};
    Object.keys(json).forEach(key => {
        if (json[key] !== uid) {
            result[key.slice(0, -1)] = json[key];
        }
    });
    return result;
};


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM