前端数据格式转换 使用正则,分割以及字符串与对象之间的转换,将数组处理成自己想要的格式

后台返回的数据格式:

{\"id\":\"dasdasdasdasd232fft3452425ffs\",\"type\":\"aaa\",\"code\":1,\"dataInfo\":\"2022-09-21 16:59:12 xiaoxiao操作\\r\\n\"},{\"id\":\"fdsfssdfdsfsdf13243fsdfs\",\"type\":\"scripts\",\"code\":1}"

最终需要的格式:

{
type: "bbb"
code: 1
id: "dasdasdasdasd232fft3452425ffs"
}
{
type: "aaa"
dataInfo: "2022-09-21 16:59:12 xiaoxiao操作"
code: 1
id: "dasdasdasdasd232fft3452425ffs"
}

处理过程:
1去除特殊字符并且按},分割
a = resp.msg.replace(“\r”, “”).replace(“\n”, “”)
let strA = a.split(“},”)
strA 是一个数组,里面有两个字符串,但是第一个少一个},需要做拼接

strA=[0: "{\"session_id\":\"014a5d6782824705902fb42847f358c9\",\"data_type\":\"test_run_data\",\"return_code\":1,\"processInfo\":\"2022-09-21 17:16:03 数据加载、脚本重新生成和保存完成\""
1: "{\"session_id\":\"014a5d6782824705902fb42847f358c9\",\"data_type\":\"generate_scripts\",\"return_code\":1}]

2:给下标为0 的拼接一个}

let strB = []
                        strA.forEach((item, index) => {
                            let obj = item.replace(/\s+/g, "")
                            if (index === 0) {
                                obj += '}'
                            }
                            strB.push(obj)
                        })

strB格式:

strB=[0: "{\"session_id\":\"014a5d6782824705902fb42847f358c9\",\"data_type\":\"test_run_data\",\"return_code\":1,\"processInfo\":\"2022-09-2117:16:03数据加载、脚本重新生成和保存完成\"}"
1: "{\"session_id\":\"014a5d6782824705902fb42847f358c9\",\"data_type\":\"generate_scripts\",\"return_code\":1}"]

3:遍历然后转成对象

strB.forEach(item => {
                            item = item.replace(/\s+/g, "")
                            var obj = JSON.parse(item);
                            console.log("obj", obj)
                            if (obj["type"] === 'aaa') {
                                console.log(obj["processInfo"])
                            }
                        })

最终结果:

obj={
type: "scripts"
code: 1
id: "dasdasdasdasd232fft3452425ffs"
}

猜你喜欢

转载自blog.csdn.net/fortunate_leixin/article/details/126976562