为什么 JSON.parse 会因空字符串而失败? [复制]

2023-12-05

为什么:

JSON.parse('');

产生错误?

Uncaught SyntaxError: Unexpected end of input

如果直接返回不是更符合逻辑吗null?

编辑:这不是链接问题的重复。虽然最小有效 json 的主题与这个问题相关,但它没有得到“为什么”。


由于空字符串不是有效的 JSON,因此它是不正确的JSON.parse('')回来null因为"null"是有效的 JSON。例如

JSON.parse("null");

returns null。如果无效的 JSON 也被解析为 null,那将是一个错误。

虽然空字符串不是有效的 JSON,但两个引号才是有效的 JSON。这是一个重要的区别。

也就是说,包含两个引号的字符串与空字符串不同。

JSON.parse('""');

将正确解析(返回空字符串)。但

JSON.parse('');

将不会。

有效的最小 JSON 字符串是

空物体'{}'

空数组'[]'

空字符串'""'

一个数字,例如'123.4'

布尔值 true'true'

布尔值 false'false'

空值'null'

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 JSON.parse 会因空字符串而失败? [复制] 的相关文章

  • Pug 从模板内的另一个文件调用 js 函数

    我花了将近四个小时都无法解决这个问题 而且我找不到任何针对此类问题的有用文档 这就是问题 我正在使用 pug jade 模板 我想调用 pug 模板内的函数来转换一些数据 这是主要模板 main template section each
  • 网络上的等角柱状图

    我计划为游戏的标记 图钉 构建在线地图 但我无法设置标记的正确纬度 原始地图是一个2048 2048px 的正方形 然后我得到了标记 数千个 地图坐标使用 0 到 100 之间的 x y 表示法设置 0 0 是top left角和100 1
  • 为什么 Promise `.then` 方法的回调是反模式

    我在 StackOverflow 上看到了答案 人们建议为 AngularJS 服务提供回调函数 app controller tokenCtrl function scope tokenService tokenService getTo
  • Golang 结构的 XML 和 JSON 标签?

    我有一个可以根据 HTTP 请求标头输出为 JSON 或 XML 的应用程序 我可以通过将正确的标签添加到我正在使用的结构中来实现正确的输出 但我不知道如何为 JSON 和 XML 指定标签 例如 序列化以纠正 XML type Foo s
  • 用更好的模式替换开关(Javascript)

    我必须升级我的应用程序以根据用户类型和角色属性显示页面 目前 我使用一个简单的 switch 语句来根据用户类型来执行此操作 例如 switch type case a return CONSTANT ONE case b return C
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • Twitch API - 无法使用 PHP 获取身份验证令牌

    stackoverflow 的成员们大家好 我不是一个喜欢寻求帮助的人 但在这种情况下 我认为这是解决我的问题的唯一方法 谷歌并没有给我太大帮助 所以 我的问题 我想使用 Twitch API 获取一些数据 听起来很容易 我希望是这样 下面
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • 为某个时刻添加持续时间 (moment.js)

    时刻版本 2 0 0 阅读文档后 http momentjs com docs manipulating add 我认为这很简单 Chrome 控制台 var timestring1 2013 05 09T00 00 00Z var tim
  • 等待异步 grunt 任务完成

    我收到了 grunt 设置 其中一个新任务应该执行 grunt task run 已经存在的任务 要执行的任务是异步的 新任务应该等待异步任务完成 执行此操作的首选方法是什么 grunt 已经涵盖了这一点 你应该将你的任务声明为异步任务 并
  • 基于范围内变量的角度设置形式动作

    我一直在尝试设置一个搜索表单 可以在其中注入表单操作属性 在我的表格中我有
  • JS:修改 JS 对象中的值/对

    我正在尝试找出修改对象的最佳方法 而无需三次写出类似的对象 所以我有这三个对象 var object1 start start end end type 1 var object2 start start end end type 2 va
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • WebpackError:ReferenceError:Gatsby 上未定义窗口

    我已经在互联网上进行了大量搜索 但无法解决这个问题 我正在使用 Gasby 开发静态页面 但遇到此错误 WebpackError ReferenceError window is not defined 我的线索是 这与我正在使用的引导 模
  • D3 强制布局,较大的节点聚集在中心

    我一直在修改将用于标签云的强制布局 每个标签都由一个
  • 获取类中的所有静态 getter

    假设我有这个类 我像枚举一样使用它 class Color static get Red return 0 static get Black return 1 有没有类似的东西Object keys to get Red Black 我使用
  • Jackson 反序列化相当于 @JsonUnwrapped 吗?

    假设我有以下课程 public class Parent public int age JsonUnwrapped public Name name 生成 JSON age 18 first Joey last Sixpack 我如何将其反
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • 拉斐尔路径交叉点不起作用

    我对拉斐尔和 pathIntersection method JSFiddle 示例 http jsfiddle net t6gWt 2 您可以看到有两条线都与曲线相交 但当我使用 pathIntersection method 有一个未解

随机推荐

  • (Python)列表索引超出范围 - 迭代[重复]

    这个问题在这里已经有答案了 for i in range len lst if lst i 0 1 or lst i 1 1 lst remove lst i return lst 这给出了 IndexError 列表索引超出范围 为什么会
  • 使用 OpenCV 以正确的速度播放视频

    我在播放视频文件时遇到问题 为什么是慢动作 怎么才能让它正常速度呢 include opencv2 opencv hpp using namespace cv int main int char VideoCapture cap eye m
  • MONO 4.6.2 服务器 CPU 使用率高

    我已经更新了我的 Ubuntu服务器到16 04 1 长期支持 and MONO to v4 6 2 来自官方存储库 自更新以来 网站仍然运行良好 但大约一两天后 一些 MONO 进程变得疯狂并停止运行 100 of the CPU 我有不
  • Selenium href 空白新窗口测试

    因此 使用 Selenium 我想测试页面上的链接并查看它们是否打开一个新窗口 它们不是 javascript 链接 只是一个基本的 href target blank 我想确保新打开的窗口确实加载了页面 我可以执行所有脚本来单击链接 但是
  • 如何为采用泛型参数的泛型函数调用 GetMethod(不使用 GetMethods)?

    我知道我可以使用获取方法信息GetMethods 但我想知道如何正确地做到这一点而不GetMethods 我读过其他 SO 问题和答案 这些问题和答案表明这是不可能的 或者建议只使用 LINQ 但这并不是问题的真正答案 从最基本的层面考虑
  • NGINX 在 HTML 文件中执行嵌入的 PHP [重复]

    这个问题在这里已经有答案了 我有以下配置 server listen 80 default server access log var www logs access log error log var www logs error log
  • Android 服务无限期运行

    我注意到像 Skype 这样的应用程序使用的服务基本上是 24x7 运行 根本不会被杀死 您甚至无法使用任务杀手手动杀死它 您可以通过运行服务并杀死服务来杀死它们 这是如何实施的 我发现在 Android 2 3 中 我的服务在运行一段时间
  • 带有隐藏 UIView 的自动布局?

    我觉得这是一个相当常见的显示 隐藏范例UIViews 最经常UILabels 取决于业务逻辑 我的问题是 使用 AutoLayout 响应隐藏视图的最佳方法是什么 就好像它们的框架是 0x0 一样 以下是包含 1 3 个功能的动态列表的示例
  • vbscript 下载文件(绕过无效证书错误)

    dim xHttp Set xHttp createobject microsoft xmlhttp dim bStrm Set bStrm createobject Adodb Stream xHttp Open GET https ww
  • 从 R 中的 POSIXct 中提取 2 位数小时

    我想从a中提取小时POSIXctR 中的时间 但检索 2 位数答案 例如 test as POSIXct 2015 03 02 03 15 00 test 1 2015 01 02 03 15 00 GMT month testing 1
  • Java:调用超级方法,该方法调用被重写的方法

    public class SuperClass public void method1 System out println superclass method1 this method2 public void method2 Syste
  • 如何使用OpenCV2.0和Python2.6调整图像大小

    我想使用OpenCV2 0和Python2 6来显示调整大小的图像 我使用并采用了this示例 但不幸的是 此代码适用于 OpenCV2 1 似乎不适用于 2 0 这是我的代码 import os glob import cv ulpath
  • 如何在 jQuery 中使用 dataType 'text' 进行跨域 ajax?

    在我的 javascript 函数中 我称之为 ajax 它工作正常 但只有当我访问网页时firebird服务器 我的电脑上有相同的代码testing服务器 ajax 要求下载一些文件 但只有 firebird 服务器有其 ip 向我们的客
  • 在unix下同步四个shell脚本依次运行

    我有 4 个 shell 脚本来生成一个文件 假设是 param txt 该文件由另一个工具 informatica 使用 并且当该工具完成处理时 它会删除 param txt 这里的目的是所有四个脚本都可以在不同的时间调用 比如上午 12
  • 注意:PHP 中未初始化的字符串偏移量

    嗨 我有这个函数 它返回一个通知 注意 未初始化的字符串偏移量 function generaterandomkey length string characters 0123456789abcdef for p 0 p lt length
  • 如何创建右上角带有完成按钮的 UIKeyboard?

    我需要展示UIKeyboard右上角有 完成 按钮 请查看附图 任何帮助将不胜感激 这可能对你有帮助 请检查一下BS键盘控制
  • C# 自定义组合框排序

    是否可以在组合框中自定义排序 显示顺序 假设我在所有其他值之前想要一个特殊值 MasterValue 不要添加字符串 而是创建一个实现 IComparable 并重写 ToString 的类 将该类的实例添加到您的 ComboBox
  • 将 SMS api 与 woocommerce 集成,不发送消息

    我正在将 SMS API 与 WooCommerce 集成 以便每当在现场进行任何购买时都会向客户的手机发送自动订单更新 下面是我的代码 add action woocommerce payment complete custom proc
  • 如何使用宏将数字格式化为文件名中至少有 5 位数字?

    我正在开发一个宏 其中涉及生成文件名并将 Excel 工作表保存为具有该名称的 pdf 我能够生成目标文件夹名称 如下所示 user name Environ UserName file dir C Users user name Docu
  • 为什么 JSON.parse 会因空字符串而失败? [复制]

    这个问题在这里已经有答案了 为什么 JSON parse 产生错误 Uncaught SyntaxError Unexpected end of input 如果直接返回不是更符合逻辑吗null 编辑 这不是链接问题的重复 虽然最小有效 j