JOSN学习笔记

JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

JSON语法规则

JSON语法是JavaScript对象表示语法的子集,

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON书写格式:名称/值对

{
"scores":[
 {"Chinese":"A","English":"B"},
 {"Chinese":"A","English":"B"},
 {"Chinese":"A","English":"B"}
 ]
}

 

JSON值类型:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

JSON的两种基本结构:

1、对象:“{}”,数据结构为{key:value,key:value,...}
取值方法:对象.key=?
2、数组“[]”,数据结构为["chinese","english","math",...]
取之方法:使用索引获取

基础示例:

名称/值对
{"chinese":"A"}
表示数组
{
"scores":[
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"}
	]
}
{
"scores1":[
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"}
	],
"scores2":[
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"}
	],
"scores3":[
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"}
	]
}

JavaScript中应用格式

JSON是JavaScript原生格式,所以在JavaScript中处理JSON数据不需要任何特殊的API或工具包。

var scores={
"scores":[
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"}
	]
}

{
"scores1":[
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"}
	],
"scores2":[
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"}
	],
"scores3":[
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"},
	{"chinese":"A","english":"B"}
	]
}
访问数据:
var var1=scores.scores1[0].chinese

修改数据:
scores.scores1[0].chinese="A"

修改数据时需要把数据转换到文本格式
var newJSONtext=scores.toJSONString();
该文本字符串可以在任何地方使用,如Ajax中的请求字符串,可以将JavaScript对象转换为JSON文本,方式相同。

使用JSON只需调用一个简单的函数就可以获得经过格式化的数据,可以直接使用了。

JSON与XML比较

可读性:

JSON和XML不相上下,简易语法和规范的标签形式。

可扩展性:

都具有良好的可扩展性,但是在Javascript中JSON还是比较占优势,因为它可以存储Javascript符合对象。

 编码的可读性:

xml比较容易读懂
json读起来费解但是适合机器阅读。

编码的手写难度:

xml会好写一些,但是标记繁琐。
json写出来内容比xml简单。

你可能感兴趣的:(Javascript)