12月28号json(第55天的学习)

JavaScript Object Notation json全称
意思是javascript 操作对象的表达方法
JSON建构有两种结构:
  json就是javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构
  1、对象:对象在js中表示为“{}”扩起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
  2、数组:数组在js中是中括号[]扩起来的内容,数据 ["java","javascript","vb",等等一行的],取值方式使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种,对象、数组2种结构就可以组合成复杂的数据结构了。

JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间传递这个字符串,JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。可以表示数组和复杂的对象,就是键和值的简单列表

值对
按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对":
{ "firstName": "Brett" }
非常基本,而且实际上比等效的纯文本"名称 / 值对"占用更多的空间:
firstName=Brett
但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }
从这上面来看,这与"名称 / 值对"相比并没有怎么样,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。

表示数组
  当需要表示一组值时,JSON 能够提高可读性,而且可以减少复杂性。假设表示一个人名列表,在XML中,需要许多开始标记和结束标记;如果使用典型的名称 / 值对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式。
  使用 JSON就只需将多个带花括号的记录分组在一起:
  { "people": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
  { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
  ]}

一个名为 people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值,可以使用相同的语法表示多个值(每个值包含多个记录):
  { "programmers": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
  ],
  "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" }
  ] }
    这里最值得注意的是,能够表示多个值,每个值进而包含多个值。但是还应该注意,在不同的主条目(programmers、authors 和 musicians)之间,记录中实际的名称 / 值对可以不一样。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式。
  在处理 JSON 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。
编辑本段
格式应用

  掌握了 JSON 格式之后,在 JavaScript 中使用它就很简单了。JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
将 JSON 数据赋值给变量
  可以创建一个新的 JavaScript 变量,然后将 JSON 格式的数据字符串直接赋值给它:
  var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
  ],
  "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包含前面看到的 JSON 格式的数据。
  但是上面的长字符串实际上只是一个数组;将这个数组放进 JavaScript 变量之后,就可以访问它。实际上,要想访问 programmers 列表的第一个条目的姓氏,只需在 JavaScript 中使用下面这样的代码:
  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"
  利用这样的语法,可以处理任何 JSON 格式的数据,而不需要使用任何额外的 JavaScript 工具包或 API。

var str = '{"stuno":"0"}';
eval('var json = ' + str);
// var json = eval('('+str+')');
alert(json.stuno)
for(var name in json){
  alert(name );//name 结果 stun
  alert(json[name]);
}

var key = 'stuno';
alert(json[key]);
键就是key

猜你喜欢

转载自xjwolaile.iteye.com/blog/1756688
今日推荐