我已经在维基百科和谷歌上搜索了它,并阅读了官方文档,但我仍然没有真正理解JSON是什么,以及我为什么要使用它。

我已经使用PHP、MySQL和JavaScript / HTML构建了一段时间的应用程序,如果JSON可以让我的生活更轻松,或者让我的代码更好,或者让我的用户界面更好,那么我想知道它。谁能给我一个简洁的解释?


当前回答

我喜欢JSON主要是因为它非常简洁。对于可以被gzip压缩的web内容来说,这并不是什么大问题(这就是xhtml如此流行的原因)。但在某些情况下,这是有益的。

例如,在一个项目中,我正在传输需要序列化并通过XMPP传输的信息。由于大多数服务器都会限制您在单个消息中传输的数据量,因此我发现使用JSON比使用XML更有帮助。

作为一个额外的好处,如果你熟悉Python或Javascript,你已经非常了解JSON,并且不需要太多训练就可以解释它。

其他回答

常见的简短回答是:如果您使用AJAX发出数据请求,您可以轻松地以JSON字符串的形式发送和返回对象。Javascript支持json()的可用扩展调用所有Javascript类型,以便在AJAX请求中向服务器发送数据。AJAX响应可以返回JSON字符串形式的对象,可以通过简单的eval调用将其转换为Javascript对象,例如,如果AJAX函数someAjaxFunctionCallReturningJson返回

"{ \"FirstName\" : \"Fred\", \"LastName\" : \"Flintstone\" }"

你可以用Javascript写

var obj = eval("(" + someAjaxFunctionCallReturningJson().value + ")");
alert(obj.FirstName);
alert(obj.LastName);

JSON也可以用于web服务负载等,但它对AJAX结果非常方便。

更新(十年后):不要这样做,使用JSON.parse

概念解释-没有代码或技术术语

什么是JSON?-我是怎么跟我老婆解释的

我:“这基本上是一种与人交流的方式....但是有非常具体的规则。

妻子:是的……?

我:用通俗的英语来说,规则是相当宽松的:就像笼斗一样。JSON则不是这样。描述某事有很多种方法:

例1:我们家有4口人:你,我和2个孩子。

例2:我们家:你,我,孩子1和孩子2。

例3:家庭:[你,我,孩子1,孩子2]

例4:我们家有四口人:妈妈,爸爸,孩子1和孩子2。

为什么他们不直接用简单的英语呢?

我:他们会的,但别忘了我们是在和电脑打交道。计算机是愚蠢的,它不可能理解句子。所以当涉及到计算机时,我们必须非常具体,否则它们会混淆。此外,JSON是一种相当有效的通信方式,因此大部分不相关的内容都被删除了,这非常方便。如果你想和电脑交流我们的家庭,你可以这样做:

{
    "Family": ["Me", "Wife", "Kid1", "Kid2"] 
}

......,基本上就是JSON。但是请记住,您必须遵守JSON语法规则。如果你违反了这些规则,那么计算机将无法理解(即无法解析)你所写的内容。

妻子:那我怎么用Json写呢?

一个好方法是使用json序列化器——这是一个为你做繁重工作的库。

总结

JSON基本上是一种与人通信数据的方式,具有非常非常具体的规则。使用键值对和数组。这是解释的概念,在这一点上,值得阅读上面的具体规则。

JSON(Javascript对象表示法)是一种用于数据交换/传输的轻量级数据格式。它和JavaScript一样是键值对。 REST API广泛用于从服务器到客户端的数据传输。如今,许多社交媒体网站都在使用这种方式。尽管就数据类型而言,我认为它不如XML健壮。XML有非常丰富的数据类型和XSD。JSON在这方面有点欠缺。

对于相同数量的字符串数据,JSON将比XML更轻,因为XML有所有的开始和结束标签,等等…

JSON是JavaScript对象表示法。与XML相比,它是一种更紧凑的跨网络连接传输数据集的方式。 我建议在任何类似ajax的应用程序中使用JSON,否则XML将是“推荐的”选项。XML的冗长会增加下载时间和带宽消耗($$$)。您可以使用JSON实现同样的效果,而且它的标记几乎专门用于数据本身,而不是底层结构。

我喜欢JSON主要是因为它非常简洁。对于可以被gzip压缩的web内容来说,这并不是什么大问题(这就是xhtml如此流行的原因)。但在某些情况下,这是有益的。

例如,在一个项目中,我正在传输需要序列化并通过XMPP传输的信息。由于大多数服务器都会限制您在单个消息中传输的数据量,因此我发现使用JSON比使用XML更有帮助。

作为一个额外的好处,如果你熟悉Python或Javascript,你已经非常了解JSON,并且不需要太多训练就可以解释它。