JSON

json入门基础教程(转)

字号+ 作者:H5之家 来源:H5之家 2016-11-13 17:00 我要评论( )

Ajax firstName=BrettlastName=McLaughlinemail=brett@newInstance.com : request firstNameBrett/firstName lastNameMcLaughlin/lastName emailbrett@newInstance.com/email /request 本文讨论另一种数据格式, JavaScript Object Notation ( JSON ) 。

Ajax

firstName=Brett&lastName=McLaughlin&email=brett@newInstance.com

 

<request>  <firstName>Brett</firstName>  <lastName>McLaughlin</lastName>  <email>brett@newInstance.com</email> </request>

 

本文讨论另一种数据格式,JavaScript Object NotationJSONJSON 看起来既熟悉又陌生。它提供了另一种选择,选择范围更大总是好事情。

添加 JSON

JSON 并不是某种魔弹;但是,它对于某些非常特殊的情况是很好的选择。

 

 

JSON 基础

{ "firstName": "Brett" }

 

firstName=Brett

 

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }

 

值的数组

person1-firstName 这样的形式。

{ "people": [  { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },  { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },  { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ]}

 

这不难理解。在这个示例中,只有一个名为 people 的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):

{ "programmers": [  { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },  { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },  { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ], "authors": [  { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },  { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },  { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [  { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },  { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }

 

在处理 JSON 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。

 

 

var people =  { "programmers": [     { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },     { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },     { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }    ],  "authors": [     { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },     { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },     { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }    ],  "musicians": [     { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },     { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }    ]  }

 

访问数据

people.programmers[0].lastName;

 

下面是使用同一变量的几个示例。

people.authors[1].genre                       // Value is "fantasy"   people.musicians[3].lastName          // Undefined. This refers to the fourth entry, and there isn't one   people.programmers.[2].firstName      // Value is "Elliotte"

 

正如可以用点号和括号访问数据,也可以按照同样的方式轻松地修改数据:

people.musicians[1].lastName = "Rachmaninov";

 

转换回字符串

String newJSONtext = people.toJSONString();

 

myObject 的对象进行转换,只需执行相同形式的命令:

String myObjectInJSON = myObject.toJSONString();

 

 



 

结束语

 

xml的写法:

 

<contact>

 

 <friend>

  <name>Michael</name>

  <email>17bity@gmail.com</email>

  <homepage></homepage>

 </friend>

 

 <friend>

  <name>John</name>

  <email>john@gmail.com</email>

  <homepage></homepage>

 </friend>

 

  <friend>

  <name>Peggy</name>

  <email>peggy@gmail.com</email>

  <homepage></homepage>

 </friend>

 

</contact>

 

JSON:

 

[

{

 name:"Michael",

 email:"17bity@gmail.com",

 homepage:"http://www.jialing.net"

},

{

 name:"John",

 email:"john@gmail.com",

 homepage:"http://www.jobn.com"

},

{

 name:"Peggy",

 email:"peggy@gmail.com",

 homepage:"http://www.peggy.com"

}

]

 

 

JSON的格式:

1,对象:

{name:"Peggy",email:"peggy@gmail.com",homepage:"http://www.peggy.com"}

{ 属性 : , 属性 : , 属性 : }

2,数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。

[

{name:"Peggy",email:"peggy@gmail.com",homepage:"http://www.peggy.com"},{name:"Peggy",email:"peggy@gmail.com",homepage:"http://www.peggy.com"},

{name:"Peggy",email:"peggy@gmail.com",homepage:"http://www.peggy.com"}

]

3, 值可以是字符串、数字、truefalsenull,也可以是对象或数组。这些结构都能嵌套。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • RapidJSON: 教程

    RapidJSON: 教程

    2016-11-13 18:00

  • spring mvc整合json

    spring mvc整合json

    2016-11-12 16:00

  • #学习笔记#基于JSON数据交换模型的实时支付系统设计和实现

    #学习笔记#基于JSON数据交换模型的实时支付系统设计和实现

    2016-11-12 15:00

  • ultraedit json 高亮

    ultraedit json 高亮

    2016-11-11 16:09

网友点评