JSON可能意味着JSON类型或json字符串 当不同的库以两种不同的含义使用json时,它开始让我感到困惑。
我想知道其他人如何以不同的方式命名这些变量。
答案 0 :(得分:0)
出于所有实际目的,“JSON”只有一个含义,即字符串表示遵循特定语法的JavaScript对象。
使用JSON.parse
将JSON解析为JavaScript对象,并使用JSON.stringify
将JavaScript对象转换为JSON字符串。
问题在于,太多人都养成了将普通的旧JavaScript对象称为JSON的坏习惯。这可能是混乱或草率或两者兼而有之。 {a: 1}
是一个JS对象。 '{"a": 1}'
是一个JSON字符串。
同样,许多人使用json
之类的变量名称来引用从JSON派生的JavaScript对象。例如:
$.getJSON('foo.php') . then(function(json) { ...
在上述情况下,变量名json
是不明智的。从服务器返回的实际有效负载是一个JSON字符串,但是内部$.getJSON
已经将其转换为一个普通的旧JavaScript对象,这是传递给then
处理程序的对象。因此,最好使用变量名data
,例如。
如果一个库使用术语“json”来指代不是JSON但实际上是JavaScript对象的东西,那么它就是设计不佳的标志,我建议四处寻找不同的库。