JSON.parse处理非标准Json数据出错的解决

作者:兴趣使然的码仔 时间:2024-04-18 09:49:12 

JSON.parse处理非标准Json数据出错

标准json格式

通常我们在编码中使用的object是类似于下面这种:

let object = {
    key1: 'value1',
    key2: 'value2',
    ...
}

这样的对象在代码中键是不需要用引号括起来的。但是标准Json的格式应该是如下:

{
    "key1": "value1",
    "key2": "value2",
    ...
}

键值都需要用双引号括起来(不能用单引号)。

有时候后台传给前台的数据被转成了字符串形式,并且是各种不标准的json格式,这时候js中使用JSON.parse会报错。

解决方法

可以使用强大的eval()函数 处理非标准json,使用方式如下:

json_string = "{key1: 'value1', key2: 'value2',}";
let json_data = eval('(' + json_string + ')');

eval主要是js的解析器封装函数,功能非常强大

JSON.parse报错分析

1.报错提示:

Uncaught SyntaxError: Unexpected token N in JSON at position 0

JSON.parse(NaN)
JSON.parse('NaN')

2.报错提示:

Uncaught SyntaxError: Unexpected token u in JSON at position 0

JSON.parse(undefind)
JSON.parse('undefind')

3.报错提示:

Uncaught SyntaxError: Unexpected token o in JSON at position 1

JSON.parse({a:2})

4.报错提示:

Uncaught SyntaxError: Unexpected token a in JSON at position 1

JSON.parse('{a:2}')

5.报错提示:

Unexpected token ' in JSON at position 1

JSON.parse("{'a':11}")

6.正确格式:

JSON.parse('{"a":11}'

**关于 JSON.parse

JSON.parse 用于解析 JSON 字符串,并返回相应的值,其参数必须符合 JSON 字符串的格式,否则就会报错。

JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null。

JSON 对象和数组的属性名必须是双引号括起来的字符串,并且最后一个属性后不能有逗号。

JSON 字符串也要用双引号括起来。

JSON 数值禁止出现前导零(JSON.stringify方法自动忽略前导零,而在 JSON.parse方法中将会报错);如果有小数点,则后面至少跟着一位数字。

来源:https://blog.csdn.net/qq_41790461/article/details/119450351

标签:JSON.parse,非标准,Json
0
投稿

猜你喜欢

  • mysql 存储过程的问题

    2024-01-29 09:05:15
  • 解决Python安装后pip不能用的问题

    2023-05-10 04:52:14
  • Spring @Enable模块驱动原理及使用实例

    2023-11-07 10:11:51
  • 纯手工打造CSS像素画

    2009-03-09 12:57:00
  • 详解如何使用beego orm在postgres中存储图片

    2024-04-25 15:14:46
  • Pycharm安装scrapy及初始化爬虫项目的完整步骤

    2023-04-03 10:49:43
  • Python获取江苏疫情实时数据及爬虫分析

    2022-09-19 02:12:30
  • Go 通过结构struct实现接口interface的问题

    2024-05-08 10:44:55
  • 关于Python函数对象的名称空间和作用域

    2023-08-15 02:00:42
  • python名片管理系统开发

    2022-06-25 13:43:47
  • ASP与数据库应用(给初学者)

    2009-03-09 18:32:00
  • 详解用Python进行时间序列预测的7种方法

    2023-02-14 18:55:34
  • PyTorch的深度学习入门教程之构建神经网络

    2021-11-21 09:34:22
  • Python实现Word的读写改操作

    2022-08-11 13:42:48
  • 教你怎么使用sql游标实例分享

    2012-07-11 16:14:57
  • vue3和ts封装axios以及使用mock.js详解

    2024-04-28 09:27:47
  • 用python分割TXT文件成4K的TXT文件

    2022-06-27 02:12:44
  • js命名空间写法示例

    2024-04-30 10:10:19
  • .NET framework 4.0 安装失败回滚问题

    2023-07-11 15:50:35
  • Django实现分页功能

    2023-04-04 11:00:56
  • asp之家 网络编程 m.aspxhome.com