自我记录一下FileUpload组件的使用问题

本文讲述了如何修复'Unexpected token in JSON at position 1'报错,以及如何高效处理fileList中name, url, uid的提取。通过实例说明了正确的赋值方式,并探讨了更优的数据处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一点,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"]
}

即可使用各自的值,我是个小白,肯定有更好的办法处理,也请各位大神请教,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值