字符串里面是数组格式 ,怎么转成数组

问题遇到的现象和发生背景

"[{file_property:2,tenant_id_:-1,history_type:00,suffix:txt,dir_path:\\enterprise\\few,update_time:2022-04-27 19:09:54,file_type:2,can_delete:1,id:203,full_path:\\enterprise\\few\\新建文本文档.txt,if_upload:1,creator:1,create_time:2021-11-18 02:44:05,file_name:新建文本文档.txt,if_root:0,dir_id:200,deleted:0,size:0}]"

想要的效果:
[{file_property:2,tenant_id_:-1,history_type:00,suffix:txt,dir_path:\\enterprise\\few,update_time:2022-04-27 19:09:54,file_type:2,can_delete:1,id:203,full_path:\\enterprise\\few\\新建文本文档.txt,if_upload:1,creator:1,create_time:2021-11-18 02:44:05,file_name:新建文本文档.txt,if_root:0,dir_id:200,deleted:0,size:0}]

const mData = '[{file_property:2,tenant_id_:-1,history_type:00,suffix:txt,dir_path:\\enterprise\\few,update_time:2022-04-27 19:09:54,file_type:2,can_delete:1,id:203,full_path:\\enterprise\\few\\新建文本文档.txt,if_upload:1,creator:1,create_time:2021-11-18 02:44:05,file_name:新建文本文档.txt,if_root:0,dir_id:200,deleted:0,size:0}]'
function parseObject(str) {
    const mObject = {}
    Array.from(mData.matchAll(/(\w.*?):(.*?)[,|}]/g)).forEach(item => mObject[item[1]] = item[2])
    return [mObject]
}
console.log(parseObject(mData))

img

简单好理解,请采纳,谢谢

用eval()函数
str = "[{file_property:2,tenant_id_:-1,history_type:00,suffix:txt,dir_path:\enterprise\few,update_time:2022-04-27 19:09:54,file_type:2,can_delete:1,id:203,full_path:\enterprise\few\新建文本文档.txt,if_upload:1,creator:1,create_time:2021-11-18 02:44:05,file_name:新建文本文档.txt,if_root:0,dir_id:200,deleted:0,size:0}]";
arr = eval(str);

你得先把列表里面的字符串语法写清楚,你想要的效果里的语法都是错的,字符串要用引号,而且还要注意转义符。


let str = "[{file_property:2,tenant_id_:-1,history_type:00,suffix:txt,dir_path:\\enterprise\\few,update_time:2022-04-27 19:09:54,file_type:2,can_delete:1,id:203,full_path:\\enterprise\\few\\新建文本文档.txt,if_upload:1,creator:1,create_time:2021-11-18 02:44:05,file_name:新建文本文档.txt,if_root:0,dir_id:200,deleted:0,size:0}]"
            let str1 = str.slice(2,str.length-2)
            str1 = str1.split(',')
            let newArr = [],obj = {}
            for(let i=0;i<str1.length;i++){
                let newS = str1[i].split(':')
                obj[newS[0]]= newS[1]
            }
            newArr.push(obj)
            console.log(newArr)