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

在执行 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

https://stackoverflow.com/questions/26540706/

相关文章:

c# - 将 JSON 数据发布到 ASP.NET MVC

json - REST:使用一个请求更新多个资源 - 它是标准的还是应该避免的?

python - 使用常规编码器使对象 JSON 可序列化

java - 与 Jackson 映射时将默认值设置为空字段

java - 忽略 Jackson 序列化的特定字段

json - 如何让 cURL 仅输出 HTTP 响应正文(JSON)而不输出其他 header 等

asp.net - 如何使用 IIS 7.5 压缩来自 ASP.NET MVC 的 Json 结果

json - AngularJS - 服务器端验证和客户端表单

javascript - 对象和哈希之间的区别?

c# - 将 XML 转换为动态 C# 对象