前端JSON.parse: Bad control character in string literal in JSON

9 篇文章 0 订阅

JSON.parse: Bad control character in string literal in JSON

# 别听有些人瞎BB,根本不是JSON数据过大导致的。

现象:

后端给前端返回JSON数据,前端JS转JSON,比如:
jQuery.parseJSON(str.replace(/\r|\n/ig,“”));
JSON.parse(str)
都会报:Bad control character in string literal in JSON

原因:

是由于json的格式出现了问题,可能是以下几种:
1.原始数据中存在/n换行符(这个原因最多)
2.数据中出现前后空格

解决方案:

1.http://jsonlint.com去检验json格式是否正确,依次处理掉错误的格式
在这里插入图片描述
2.在前端剔除空格和换行符再提交
3.如果你是需要把数据回显,可以在后台代码中剔除空格/换行符

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: syntaxerror: json.parse: 格式错误是指在使用json.parse()函数时,解析的JSON字符串的格式不符合JSON规范,导致解析失败。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据交互。其规范要求JSON字符串必须使用双引号来包裹键和值,并且键和值必须是合法的JavaScript表达式。如果在解析过程中遇到不符合规范的JSON字符串,就会抛出syntaxerror: json.parse: 格式错误。 例如,下面的JSON字符串就是一个格式错误的示例: { 'name' : 'John', 'age' : 25 } 在上述的JSON字符串中,使用了单引号 ' 来包裹键和值,而按照JSON规范应该使用双引号 "。因此,当尝试使用json.parse()函数解析这个JSON字符串时,会抛出syntaxerror: json.parse: 格式错误的异常。 为了解决这个问题,可以将JSON字符串中的单引号 ' 替换为双引号 "。修正后的正确JSON字符串如下: { "name" : "John", "age" : 25 } 这样,使用json.parse()函数解析这个修正后的JSON字符串就不会再报错了。 总之,syntaxerror: json.parse: 格式错误是指在使用json.parse()函数解析JSON字符串时,发现解析的JSON字符串格式不符合JSON规范,需要手动修正JSON字符串的格式才能解决这个问题。 ### 回答2: syntaxerror: json.parse: 格式错误表示在使用JSON.parse()方法解析JSON字符串时,遇到了格式错误的情况。这种错误通常是由于JSON字符串的格式与JSON语法规定不符导致的。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在编写和解析JSON时,我们需要遵循一定的语法规则。常见的JSON格式错误包括: 1. 键名或字符串没有使用双引号("")括起来:JSON要求键名和字符串必须使用双引号,单引号是不被允许的。错误示例:{name: "John"} 2. 数字、布尔值或null等值没有正确表示:在JSON中,数字应该直接使用,布尔值应该为true或false,null应该为null。错误示例:{age: twenty} 3. 缺少逗号或冒号:键值对之间需要使用逗号分隔,键名和值之间使用冒号分隔。错误示例:{name: "John" age: 25} 4. JSON字符串格式错误:JSON对象应该以大括号{}包围,数组应该以中括号[]包围,各个键值对之间使用逗号分隔。错误示例:[name: "John"] 当出现以上格式错误时,使用JSON.parse()方法解析时会抛出syntaxerror: json.parse: 格式错误异常。要解决这个问题,我们需要检查JSON字符串的格式是否符合JSON语法规定,根据错误信息逐个修正错误,并确保所有的键名和字符串都被双引号包围。 ### 回答3: syntaxerror: json.parse: 格式错误是一个常见的错误信息,通常出现在使用 JSON.parse() 方法解析 JSON 格式数据时发生错误。这个错误信息表示传入的字符串无法正确解析为有效的 JSON 对象。造成这个错误的原因可能有以下几点: 1. JSON 字符串格式错误:JSON 字符串必须符合严格的语法规则。常见的错误包括对象属性没有使用双引号包裹、字符串没有使用双引号包裹、缺少逗号分隔等。要解决这个问题,需要检查 JSON 字符串的格式是否符合规范。 2. JSON 数据类型不匹配:JSON 对象由键值对组成,其中值可以是字符串、数字、布尔值、数组、对象或 null。如果 JSON 中的某个值的数据类型与预期不一致,解析过程就会出错。要解决这个问题,需要检查 JSON 字符串中各个键值对的值是否符合预期的数据类型。 3. JSON 字符串包含特殊字符:某些特殊字符,如换行符、制表符等,不能直接包含在 JSON 字符串中。要在 JSON 字符串中包含这些特殊字符,需要进行转义操作。如果没有正确转义这些特殊字符,解析过程就会出错。 解决这个错误可以采取以下步骤: 1. 检查 JSON 字符串的格式是否正确,确保对象属性使用双引号包裹、字符串使用双引号包裹、逗号用于分隔各个键值对等。 2. 检查 JSON 字符串中各个键值对的值是否符合预期的数据类型,确保数据类型匹配。 3. 如果 JSON 字符串中包含特殊字符,需要对这些字符进行转义。 通过以上步骤,我们可以解决 syntaxerror: json.parse: 格式错误这个问题,确保成功解析 JSON 字符串并得到有效的 JSON 对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值