1.什么是JSON
JSON全称对象表示法,是一种数据格式。它本身是一串字符串,只是它有固定格式的字符串,符合这个数据格式要求的字符串,我们称之为JSON。
用来代替XML做数据交换
2.JSON语法
语法规则
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
{"key":value"}==>key=value因为是字符串所以用双引号 - 方括号保存数组
键值对
JSON 数据的书写格式是:{Key:Value}、{Key:Array}。
注意:如果是字符串则需要用引号
例如:{"name" : "晋二"}等价于js语句的name="晋二"
JSON数据结构中的value的取值:
string(双引号中)、number、object(花括号中)、array(方括号中)、boolean(true/false),null
{
"type1": "string",
"type2": 31,
"type3": {"name":"晋二"},
"type4": ["张三","李四"],
"type5": true,
"type6": null,
}
JSON对象
JSON 对象在花括号中,对象可以包含多个名称/值对
{
"name": "晋二",
"age": 18,
"gender":"女"
}
等价于JavaScript的这条语句
name="晋二",
age=18,
gender="女"
JSON数组
JSON数组在方括号("[]")中书写,数组可包含多个对象,如下“student”描述
{
"student": [
{
"name": "张三",
"age": 15
},
{
"name": "李四",
"age": 16
},
{
"name": "王五",
"age": 17
}
]
}
JSON 文件说明
JSON 文件的文件后缀是 “.json”
JSON 文本的 MIME 类型是 “application/json”
3.对象字符串转换
JSON.parse()
JSON.parse()可以把JSON规则的字符串转换为JSON对象
语法:
JSON.parse(text[, reviver])
//text:需要被转换的字符串。
//[, reviver] : 可选参数,可以是一个回调方法。
返回值是一个JSON对象
案例:
'{"name":"张三","age":12,"gender":"男"}'
例如我们得到了的如上数据,用引号包裹起来,说明是一个字符串,就可以通过JSON.parse()转换成JSON对象
var json=JSON.parse('{"name":"张三","age":12,"gender":"男"}');
console.log(json);
运行结果:{ name: '张三', age: 12, gender: '男' }
JSON.stringify()
可以把JSON对象转化为 JSON 规则的字符串
语法:
JSON.stringify(value[, replacer[, space]])
| 参数 | 参数说明 | 备注 |
|---|---|---|
| value | 将要序列化成 一个JSON 字符串的值 | 必选 |
| replacer | 如果是一个function,那么每个序列化成JSON的value都会经过这个function,如果是一个Array,那么序列化后的JSON字符串中的Key在这个数组中才会加入到返回的JSON 字符串中去 | 可选 |
| space | 用于美化JSON字符串,如果是一个Number类型,代表的就是多少个空格。如果是0或者小于0,那么就是没有空格(和不填此项没有区别),如果是字符串,那么直接填充。 | 可选 |
案例:
{ name: '李四', age: 15, gender: '男' }
将这个普通对象转为json字符串,就可以使用JSON.stringify()
var json=JSON.stringify({ name: '李四', age: 15, gender: '男' });
console.log(json);
运行结果:{"name":"李四","age":15,"gender":"男"}
4.ajax与JSON
Ajax与JSON是密不可分的,因为目前大部分Ajax请求都采用JSON来完成前后端之间的数据交互。
一般在ajax里请求等到的结果就是json
本文详细介绍了JSON(JavaScript Object Notation)的基本概念,包括其作为数据交换格式的特点,以及与XML的区别。文章深入讲解了JSON的语法,如数据在名称/值对中,使用花括号和方括号表示对象和数组,并强调了字符串必须使用双引号。还阐述了JSON对象和数组的构建方式,并展示了如何通过JSON.parse()和JSON.stringify()进行字符串与对象的转换。最后,讨论了JSON在Ajax数据交互中的重要角色,指出大部分Ajax请求都依赖JSON来传递数据。

5600

被折叠的 条评论
为什么被折叠?



