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

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


当前回答

在Java上下文中,使用JSON的一个原因可能是,它为Java的Serialization框架提供了一个非常好的替代方案,而Java的Serialization框架(历史上)已被证明存在一些相当严重的漏洞。

Joshua Bloch在第85项“首选Java序列化的替代方案”(Effective Java 3rd Edition)中深入讨论了这一点。

Java的序列化最初的目的是将数据结构转换为易于传输或存储的格式。JSON满足这一要求,没有上面提到的严重漏洞。

其他回答

什么是JSON?

JavaScript对象表示法(JSON)是一种轻量级的数据交换格式,灵感来自JavaScript的对象文字。

JSON值可以包括:

对象(名称-值对的集合) 数组(值的有序列表) 字符串(双引号) 数字 True、false或null

JSON与语言无关。

JSON和PHP?

在PHP版本5.2.0之后,JSON扩展被默认解码和编码功能。

Json_encode -返回值的JSON表示形式 Json_decode -解码JSON字符串 Json_last_error -返回最后发生的错误。

JSON语法和规则?

JSON语法源自JavaScript对象符号语法:

数据以名称/值对的形式存在 数据之间以逗号分隔 花括号保存对象 方括号包含数组

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

有时,在不需要技术细节的地方会给出技术细节,虽然许多投票最多的答案都是准确的技术和具体的,但我个人认为它们并不比维基百科或官方文件上的答案更容易理解或简洁。

我认为JSON就是它的本质——不同语言世界中的一种语言。然而,JSON与其他语言之间的区别在于,“每个人”都会“说”JSON以及他们的“母语”。

用一个真实的例子,让我们假设有三个人。其中一人将伊博语作为他们的母语。第二个人想要与第一个人互动,然而,第一个人把约鲁巴语作为他们的第一语言。

我们能做什么?

值得庆幸的是,我们例子中的第三个人是说英语长大的,但碰巧也会说伊博语和约鲁巴语作为第二语言,因此可以充当前两个人之间的中介。

在编程世界里,第一个“人”是Python,第二个“人”是Ruby,第三个“人”是JSON,他恰好能够将Ruby“翻译”成Python,反之亦然!显然,这个类比并不完美,但是,作为一个会说两种语言的人,我相信这是一种观察JSON如何与其他编程语言交互的简单方法。

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

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

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

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

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