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


猜你喜欢
- 1.优化应用程序和业务逻辑,这个是最重要的。 2.数据库设计阶段范式和反范式的灵活应用。一般情况下,对于频繁访问但是不频繁修改的数据,内部设
- 在python类当中,经常会遇到@classmethod和@staticmethod这两个装饰器,那么到底它们的区别和作用是啥子呢?具体来看
- 这次我们讨论的是,区分有单选框的选项和普通的选项~~乍听起来,可能不太理解我说了什么,下面举个例子先~~1、标签的单选~~例如QQ秀的支付流
- 1. 进入mysql/bin目录下输入mysqladmin processlist; 2. 启动mysql,输入show processli
- 找了 很多 关于表格分页 点击事件 请求, table.render 并不支持监听点击事件,所以我就把 table.render 和 lay
- Pytorch one_hot编码函数解读one_hot编码定义在一个给定的向量中,按照设定的最值–可以是向量中包含的最
- 简介:倒计时秒杀组件在电商网站中层出不穷 不过思路万变不离其踪,我自己根据其他资料设计了一个vue版的核心思路:1、时间不能是本
- 1. 腐蚀 & 膨胀1.1什么是腐蚀&膨胀腐蚀&膨胀是图像形态学中的两种核心操作腐蚀可以描述为是让图像沿着自己的边界
- 通用用法但上图的字段名,类型需要根据不同接口填写,如某服务接口:因而对应的上传代码如下:# 输出参数:请求响应报文import reques
- Python开发最牛逼的IDE——pycharm(其实其它的工具,例如eclipse也可以写,只不过比较麻烦,需要安装很多的插件,所以说py
- 腾讯“月捐计划”倡导爱心人士,通过每月小额捐款的形式,长期关注和支持公益项目。并和亿万爱心网友一起,每人每月1份爱,点滴付出,汇成爱海,形成
- 在PyQt5教程的这一部分,我们将讨论拖放操作。在电脑图形用户界面,拖放事件就是点击一个虚拟对象,并将其拖动到其他位置或到另一个虚拟物体的动
- 1.变量的赋值操作只是多生成了一个变量,实际上还是指向同一个对象# -*- coding: utf-8 -*-class CPU: &nbs
- 1. 引入mybatis-plus相关包,pom.xml文件2. 配置文件application.property增加多库配置mysql 数
- 数据库中有user表如下:新建一个Django项目:django-admin.py startproject myDjango<pro
- 有时候,因为内容的更改或者隐私问题,我们往往不 希望别人通过“百度快照”的方法 查看 自己网站的某一些网页,对于网站管理员来说,百度快照也分
- 随机排列利用 numpy.random.permutation() 函数,可以返回一个序列的随机排列。将此随机排列作为 take() 函数的
- 日一二三四五六'.split('') ['日','一','二
- 本文实例讲述了Python爬虫爬取杭州24时温度并展示操作。分享给大家供大家参考,具体如下:散点图 爬虫杭州今日24时温度 https://
- 如下所示:将i前面加str(i)就可以了补充拓展:python 连接字符串和数字 python 连接字符串和数字的问题:首先要说的