javascript - 保留未定义的 JSON.stringify 否则将删除

标签 javascript json

在执行 JSON.stringify(hash) 时如何保留 undefined 值?

这是一个例子:

var hash = {
  "name" : "boda",
  "email" : undefined,
  "country" : "africa"
};

var string = JSON.stringify(hash);

// > '{"name":"boda","country":"africa"}'

电子邮件从 JSON.stringify 中消失了。

最佳答案

JSON 规范不允许 undefined 值,但允许 null 值。

您可以将替换函数传递给 JSON.stringify 以自动将 undefined 值转换为 null 值,如下所示:

var string = JSON.stringify(
  obj,
  function(k, v) { return v === undefined ? null : v; }
);

这也适用于数组中未定义的值,因为 JSON.stringify 已经将它们转换为 null

关于javascript - 保留未定义的 JSON.stringify 否则将删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26540706/

相关文章:

JSON 到 JSON-LD

.net - 如何使用 Json.NET 为数组中的每个对象反序列化带有 "root"元素的 JSON 数组?

javascript - 通过 jStorage 库迭代存储在 localStorage 中的一组键

javascript - socket io 内部的回调

javascript - 带有 React 渲染 Prop 的流泛型

javascript - 如何检查字符串是否只包含拉丁字符?

ios - 如何在 Alamofire 请求 swift 3 中传递 JSON 对象

javascript - 删除 Angular 表中的按钮

xml - 将 xml 存储在 json 对象中

python - 如何修复此错误 json.decoder.JSONDecodeError : Python