解决JSON.parse转化不规范json字符串的问题

 更新时间:2022年09月29日 09:03:21   作者:晴空排云  
这篇文章主要介绍了解决JSON.parse转化不规范json字符串的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

JSON.parse转化不规范json字符串问题

JSON.parse可以将一个json字符串转化为一个json对象。但是该方法对json字符串的格式要求比较严格,如果json字符串不太规范,转化就会报错。常见错误有两种:

1 json字符串中的key值没有带引号

key值不带引号的json字符串无法使用该方法转化,如下:

{
	a:1
}

转化报错如下:


2 json字符串中的key值带的单引号

如果json字符串中的key值带的是单引号,也无法转化,报错相同,如下:

{
	'a':1
}

3 规范的json字符串格式

json字符串中所有的key值必须用双引号包裹才能正常转化为json对象。 如下:

{
	"a":1,
	"b":"string",
	"c":[1,2,3]
}

4 不规范json字符串的转化方法

前提是,保证json字符串数据是正确的,只不过是key没有用双引号包围,像上面提到的两点。然后可以使用eval函数进行转化,如下:

eval("({a:1})")
eval("({'a':1})")


字符串转json(JSON.parse报错)

后端返回字符串类型的数组对象格式,js不能使用JSON.parse直接转,否则会报错

问题

字符串格式不是很完美,导致JSON.parse转换失败。JSON.parse()方法对字符串的格式要求极其严格。一点格式错误都不能有,否则就报异常。

解决方法(此方法可解析不规范格式)

let str = "[{sec: 1, result: '123'}]"
 let arr = eval('(' + val + ')')
 console.log(arr)//[{sec: 1, result: '123'}] 此时已转化为json格式
类型$parseJSON(需配合jquery使用)JSON.parseeval
方法说明jquery的方法。将符合标准格式的的JSON字符串转为与之对应的JavaScript对象只能解析属性名是双引号包裹的字符串对象可将一个JavaScript代码字符串求值成特定的对象
主要区别字符串必须用双引号括起来必须严格遵守json字符串格式;属性名称必须用双引号包裹;字符串必须用双引号括起来。
使用场景能用JSON.parse的都可以用这个json字符串必须严格符合json格式。可以用在后端传递给前端数据格式的使用使用。对数据的严谨性可以格式不规范的时候,当你不能确认对方的数据格式是不是很严谨的时候

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 小程序使用wxs解决wxml保留2位小数问题

    小程序使用wxs解决wxml保留2位小数问题

    这篇文章主要介绍了小程序使用wxs解决wxml保留2位小数问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 前端实现docx文件预览的3种方式举例及分析

    前端实现docx文件预览的3种方式举例及分析

    这篇文章主要介绍了前端实现docx文件预览的3种方式,三种方式分别是docx-preview、vue-office和mammoth,文中给出了详细的代码示例,需要的朋友可以参考下
    2025-03-03
  • Jquery把获取到的input值转换成json

    Jquery把获取到的input值转换成json

    本篇文章主要介绍了Jquery把获取到的input值转换成json的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-05-05
  • JS之相等操作符详解

    JS之相等操作符详解

    下面小编就为大家带来一篇JS之相等操作符详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • javascript页面渲染速度测试脚本分享

    javascript页面渲染速度测试脚本分享

    这篇文章主要介绍了javascript页面渲染速度测试脚本,计算浏览器渲染HTML页面所需要的时间,需要的朋友可以参考下
    2014-04-04
  • JavaScript 过滤关键字

    JavaScript 过滤关键字

    本文主要介绍了JavaScript过滤关键字的方法。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案

    关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案

    关于Lodop打印是个很牛的打印插件,但是打印Bootstrap的样式的时候就容易错乱,下面通过本文给大家分享下这方面的问题
    2016-12-12
  • Servlet返回的数据js解析2种方法

    Servlet返回的数据js解析2种方法

    这篇文章主要介绍了Servlet返回的数据js解析2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • JavaScript数据结构与算法

    JavaScript数据结构与算法

    这篇文章主要介绍了JavaScript数据结构与算法,文章围绕主题展开数据结构与算法的概念,以及几种常见的数据结构是什么,有什么优点和缺,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • JS 用6N±1法求素数 实例教程

    JS 用6N±1法求素数 实例教程

    显然,当N≥1时,6N,6N+2,6N+3,6N+4都不是素数,只有形如6N+1和6N+5的自然数有可能是素数。所以,除了2和3之外,所有的素数都可以表示成6N±1的形式(N为自然数)。
    2009-10-10

最新评论