空字符串或空变量的JSON标准是什么?

空字符串或空变量的JSON标准是什么?,json,cjson,Json,Cjson,我正在构建一个解析JSON模板的应用程序,然后用新数据替换对象的值。我的问题是,用JSON表示空数据的标准方法是什么 我现在就是这样处理的: 空字符串表示为“” 空int/float/double/bool/etc表示为NULL 这是正确的吗?应该是非常直接的 { "Value1": null, "Value2": null, } Null表示一个可以为Null的数据类型,因此您的业务层需要知道它是否是int、double、string…这完全取决于您 JavaScript中的f

我正在构建一个解析JSON模板的应用程序,然后用新数据替换对象的值。我的问题是,用JSON表示空数据的标准方法是什么

我现在就是这样处理的:

  • 空字符串表示为“”
  • 空int/float/double/bool/etc表示为NULL

这是正确的吗?

应该是非常直接的

{
  "Value1": null, 
  "Value2": null,
}

Null表示一个可以为Null的数据类型,因此您的业务层需要知道它是否是int、double、string…

这完全取决于您

JavaScript中的falsy值为:

  • false
  • null
  • 未定义
  • 0
  • NaN
  • '
    '
您可以使用其中任何一个来表示空值。但是,请记住,当您尝试访问一个不存在的对象属性时,您将得到未定义的
。因此,
未定义的
在某种程度上可以被视为标准空值


话虽如此,一种约定是使用
null
,这样您就可以将故意设置为
null
的属性与实际上未定义的属性区分开来。设置空字符串就像强制执行默认值一样。因此,如果您这样做,您也应该为其他类型执行此操作,int-asign a 0、bool-asign false等。然而,在我看来,“空数据”应该等于null。因此,在这里,您必须考虑您的数据是否应该为空或根本不存在,因为您也可以在某些地方进行未定义的检查。
undefined
的可能重复项不是有效的JSON,NaN也不是有效的JSON。但是,如果您将这些值中的任何一个传递给
JSON.stringify()
您总会得到一个字符串,该字符串是有效的JSON,但从未提及JavaScript。