json.parse转化数字失真末尾变成了00 很大的数字 或者很小的数字时 原本的数变了;当使用json.parse要转化的不是json字符串报错问题解决;

// 判断的是否是JSON字符串
export const isJsonType = str => {
  if (typeof str == 'string') {
    try {
      var obj = JSON.parse(str)
      // 等于这个条件说明就是JSON字符串 会返回true
      if (typeof obj == 'object' && obj) {
        return true
      } else {
        //不是就返回false
        return false
      }
    } catch (e) {
      return false
    }
  }
  return false
} 



//判断有值且返回的字符串是json字符串====>为了解决 不是json时报错问题
if (item.videoLeftUrl && isJsonType(item.videoLeftUrl)) {
       //将很大或者很小的数字替换成字符串类型 再使用json.parse转化就不会有失真的问题了
       let stringUrl=item.videoLeftUrl.replace(/(\d+)/g,'"$&"')
       let { device, channel, media } = JSON.parse(stringUrl)
          
}

你可能感兴趣的:(js,json,javascript,前端)