Hay un problema con el valor de la cadena json del applet. ¿Cómo está indefinido y no se puede utilizar la función eval?

1. El valor devuelto por el backend

"{\"msg\":\"InvalidParameterValue.NoFaceInPhoto-图片中没有人脸。\",\"code\":500}”

Sobre el escenario de por qué se devuelve la cadena json anterior : Carga de archivos " Tipo de contenido declarado "

wx.uploadFile({
  url: common.apiServer+'wx/user/uploadImg?openid='+openid,
  filePath:  _self.data.src,
  name: 'file',
  header: {
    "Content-Type""multipart/form-data"
  },
  success: function (uploadFileRes) {

  },
  errorfunction(e){
    wx.hideLoading();
    console.log("文件上传失败");
  }
});      

2. Distinguir entre cadena json y objeto json

El back-end superior devuelve la cadena json. Seamos más específicos sobre sus características: use comillas simples o dobles

Echemos un vistazo a los objetos json de uso común ↓↓↓:

{"msg":"InvalidParameterValue.NoFaceInPhoto-图片中没有人脸。","code":500}
Entonces, ¿cuál es la diferencia entre los dos?

Los objetos pueden ser mediante el atributo de objeto de valor, y la cadena JSON no.

Por ejemplo, el código de datos en los datos devueltos "suponiendo que los datos devueltos son datos " Lo que obtienes en la cadena json no está definido , y lo que obtienes en el objeto json es 500

3. Cómo obtener los datos en la cadena json

En primer lugar, podemos pensar en la función eval en js . Después de intentarlo, se informa el siguiente error:

thirdScriptError
eval is not a function;at api uploadFile success callback function
TypeError:
 eval is not a function

A medida que los problemas de seguridad de datos, applet para desactivar esta función ... uso JSON.parse lograr

JSON.parse :

let data = "{\"msg\":\"InvalidParameterValue.NoFaceInPhoto-图片中没有人脸。\",\"code\":500}”;
let resuleData= data.replace(" ","");
if(typeof resuleData != 'object'){
  resuleData= resuleData.replace(/\ufeff/g,"");
  let newData = JSON.parse(resuleData);
  console.log("newData:"+JSON.stringify(newData));
  console.log("new code :" + newData.code);
}

在平时遇到返回的是json字符串时,首先第一想到的就是eval函数,但由于小程序禁用了eval函数,故开此篇以记之。

Supongo que te gusta

Origin www.cnblogs.com/niceyoo/p/12722231.html
Recomendado
Clasificación