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

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


当前回答

简而言之,它是一种用于传递数据的脚本符号。在某些方面,它是XML的替代方案,本机支持基本数据类型、数组和关联数组(名称-值对,称为对象,因为这是它们所表示的内容)。

该语法用于JavaScript, JSON本身代表“JavaScript对象表示法”。然而,它已经变得可移植,并在其他语言中使用。

这里有一个有用的详细链接:

http://secretgeek.net/json_3mins.asp

其他回答

什么是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对象符号语法:

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

简而言之,它是一种用于传递数据的脚本符号。在某些方面,它是XML的替代方案,本机支持基本数据类型、数组和关联数组(名称-值对,称为对象,因为这是它们所表示的内容)。

该语法用于JavaScript, JSON本身代表“JavaScript对象表示法”。然而,它已经变得可移植,并在其他语言中使用。

这里有一个有用的详细链接:

http://secretgeek.net/json_3mins.asp

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

什么是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格式通常用于通过网络连接序列化和传输结构化数据。它主要用于在服务器和web应用程序之间传输数据,作为XML的替代方案。

JSON和传统语法的区别如下(Javascript)

传统的

 function Employee(name, Id, Phone, email){

      this.name = name;
      this.Id = Id;
      this.Phone = Phone;
      this.email = email;
  }

  //access or call it as 

var Emp = new Employee("mike","123","9373849784","mike.Anderson@office.com");

用JSON

如果我们使用JSON,我们可以用不同的方式定义

  function Employee(args){

   this.name = args.name;
   this.Id = args.Id;
   this.Phone = args.Phone;
   this.email = args.email;
}

//now access this as...

var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'});

我们必须记住的重要事情是,如果我们必须用100个元素构建“Employee”类或模态,而不使用JSON方法,我们必须在创建类时解析所有内容。但是使用JSON,我们只能在定义类的新对象时内联定义对象。

下面这一行是JSON的处理方式(只是一种简单的定义方式)

 var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'});