JSON.parse Expected property name or '}' in JSON at position 1

一、背景

前端提交时,需要先判断提交的是否是json格式

在实际执行中发现,提交的是json格式,但一直判定不是

经过搜索发现JSON.parse不支持单引号

二、代码

      isJson(str) {
        if (typeof str == 'string') {
          try {
            var obj = JSON.parse(str)
            if (typeof obj == 'object' && obj) {
              console.log('是JSON')
              return true
            } else {
              return false
            }
          } catch (e) {
            console.log('error:' + str + '!!!' + e)
            return false
          }
        } else {
          console.log('not string')
        }
      },

三、解决方案

 将传入的字符串中的单引号变为双引号后再判断

str = str.replace(/'/g, '"')   //单引号替换为双引号

 

posted @ 2022-10-31 15:45  sugoi  阅读(5256)  评论(0编辑  收藏  举报