字符串转对象方法_字符串类型转换

字符串转对象方法_字符串类型转换javascript字符串转对象

最近做项目,前后端,又遇到字符串对象的问题,立马想到,
以前我写过的一个非常好用的两个静态转换函数,专门用于 转换 不规范的字符串对象,和字符串数组


    /**
     *  转换字符串对象为真正的Object对象
     *  a = parseToObject({aa:'ko be',b:" 2"})
        b = parseToObject({aa:'kobe',b:1})
        c = parseToObject("{aa:'ko be',b: 1}")
        d = parseToObject("{aa:'kobe',b:'1'}")
        e = parseToObject({"a a":'kobe',b:1})
        f = parseToObject("{a a:'kobe',b:'1'}")

        输出:
        { aa: 'ko be', b: 2 }
        { aa: 'kobe', b: 1 }
        { aa: 'ko be', b: 1 }
        { aa: 'kobe', b: 1 }
        { 'a a': 'kobe', b: 1 }
        { 'a a': 'kobe', b: 1 }
    * @param {*} a 
    */
    static parseToObject = (a: any): object => {
        try {
            const temp = (paramObject) => {
                let obj = {};
                if (typeof paramObject == "object") {
                    Object.keys(paramObject).forEach(x => {
                        obj[x.trim()] = isNaN(paramObject[x]) == false ? Number(paramObject[x]) : paramObject[x];
                    })
                }
                return obj;
            }

            if (a.constructor.name == "String") {
                let index = a.indexOf("{")
                let lastIndex = a.lastIndexOf("}");
                let str = a.substr(index + 1, lastIndex - 1);
                let str2 = str.replace(/[\'\"\\\/\b\f\n\r\t]/g, '');
                let json = querystring.parse(str2, ',', ':')
                return temp(json)
            } else if (a.constructor.name == "Object") {
                return temp(a);
            } else {
                return {};
            }
        } catch (e) {
            return {};
        }
    }

    /**
 * @brief 用于将一个字符串的数组对象转换为数组对象
 * "[1,2,3]"  ===>    [1,2,3] (去掉引号的过程)
 * @param stringArray
 * @returns {Array}
 */
    static stringArrayParse = (stringArray) => {
        let ra = [];
        if (stringArray) {
            if (Array.isArray(stringArray)) {
                ra = stringArray
            } else {
                let index = stringArray.indexOf("[")
                let lastIndex = stringArray.lastIndexOf("]");
                let str = stringArray.substr(index + 1, lastIndex - 1);
                if (str) {
                    ra = str.split(",")
                }
            }
        }
        return ra.map(x => {
            if (x.indexOf) {
                // 如果数内容是一个object的数组,则将字符转为object
                if (x.indexOf("{") > -1 && x.indexOf("}") > 0) {
                    //上面定义函数
                    return Util.parseToObject(x);
                }
            }
            return x;
        })
    }

只听到从架构师办公室传来架构君的声音:
荷花娇欲语,愁杀荡舟人。有谁来对上联或下联?
本文来源.一只曼巴,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/209179
0

发表评论