第一点,Unexpected token o in JSON at position 1报错
const vpfileUrl = {
name: file.name,
url: process.env.VUE_APP_BASE_API +response.fileName,
uid: file.uid,
};
this.fileList.push(vpfileUrl);
this.$emit("input", JSON.stringify(this.fileList));
在我使用时,出现了上面的报错,涉及到了JSON.parse()和JSON.stringify()这块的内容,由于这里将对象值赋值到了vpfileUrl变量中然后再进行转换,如下
this.fileList = JSON.parse(val);
传过来的值变成了下面的样子
{vpfileUrl:'{"name": "mingzi","url": "lianjie","uid": "123456"}'}
虽然是一个对象,但不是JSON字符串,里面的值才是JSON字符串,所以,不要赋值,直接转换就可以了
this.fileList.push({
name: file.name,
url: process.env.VUE_APP_BASE_API + response.fileName,
uid: file.uid,
});
第二点,fileList的处理
如何拿到name,url,uid这三个值,直接获取时的拿到的是以下代码
[{\"name\":\"nihao.txt\",\"url\":\"/url/nihao.txt\",\"uid\":123456}]
下面是处理方式
for (let key in this.fileList) {
let a = this.fileList[key].dataIndeed;//dataIndeed为将上述数据拆分后的需要赋值进的变量
a = [JSON.parse(a)[0].name, JSON.parse(a)[0].url,JSON.parse(a)[0].uid];
response.rows[key].enclosure = a;
console.log(response.rows);
//打印内容:["nihao.text","url/nihao.text","123456"]
}
即可使用各自的值,我是个小白,肯定有更好的办法处理,也请各位大神请教,谢谢