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 @   sugoi  阅读(5944)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示