微信小程序 后端返回数据为字符串怎么解析为json格式呢?
在微信小程序中,用wx.uploadFile{}上传服务器文件,成功后返回的是没有转码的json数据格式,而且是字符串类型。想要判断返回的数据这时候需要把之转换为对象,直接用JSON.prase(string)会报错,所以就总结了一下自己实现的方法。
1、首先说一个错误的方法:使用eval()
在浏览器控制台测试没问题就直接复制到了项目中,下午整理代码测试的时候发现出错了。

错误提示: TypeError: eval id not funtion
主要原因是微信小程序不支持 eval 这个方法,所以肯定不能使用这个了,那么就要另辟蹊径了,下面就整理一份可行的方案, 亲测可用。
2、正确的方案
wx.uploadFile({
	url: 'API',   //上传的路径
	filePath: tempFilePaths, //刚刚在data保存的文件路径
	name: 'file',   //后台获取的凭据
	formData:{
		"userId": 1,
		"fileName": filename
	},
	success(res) { 
		console.log(res.data)
		let str = res.data
		let str1 = str.replace(/\ufeff/g,"") // step1: 首先去掉两头的"",
		let data = JSON.parse(str1) // step2: 转换成JSON格式的数据
		if(data.code != "00000"){
			_that.$uniApi.tipMsg(data.msg)
			return
		}
	}
})
主要的代码就是
let str = res.data // step1: 首先去掉两头的"", let str1 = str.replace(/\ufeff/g,"") // step2: 转换成JSON格式的数据 let data = JSON.parse(str1)
完成以上两个步骤就可以实现字符串转成JSON格式了!

            





















