javascript - 如何强制 JSON.parse 抛出数字?

标签 javascript node.js json

我刚刚发现 JSON 可以将数字和字符串作为原始数据处理。我非常想知道为什么,因为我从未见过基元与 JSON 一起使用。

但是,对我来说,使用 JSON 解析基元更有可能是一个编程错误(不会被注意到),我想避免它。

例如,我可以强制抛出以下内容吗?

JSON.parse(123);

规范:https://www.json.org/json-en.html

最佳答案

您可以包装 parse 函数并在反序列化之前检查 number 参数。

(() => {
  const parse = JSON.parse;
  JSON.parse = function (text,reviver) {
    if (typeof text === "number") throw "JSON.parse: Invalid argument type (number)";
    return parse(text,reviver);
  }
})();

console.log( JSON.parse(`{"prop":"Hello world!"}`) );  //OK
console.log( JSON.parse(123) );                        //NOT OK

关于javascript - 如何强制 JSON.parse 抛出数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59975658/

相关文章:

javascript - 如何在SPA应用中开发登录/注册

javascript - 如何创建异步方法的同步版本?

python - 将 Python 字典转换为 JSON 数组

Javascript 显示 div 函数

javascript - 当另一个组件发生更改时,React 重新渲染组件

javascript - Node-Red 编辑器和库依赖项?

javascript - 通过 Passport OAuth 流程传递 URL 参数

c# - RestSharp:反序列化 json 字符串

json - Gson 是否有类似 @JsonProperty 的方法?

javascript - 在 Jest 测试中等待 Promise.all