js笔记--JSON,Ajax

1.JSON语法

JSON是一种数据格式,并不是一种编程语言。虽然与JavaScript具有相同的语法形式,但JSON并不从属于JavaScript。
JSON不支持变量,函数或对象实例,它就是一种表示结构化数据的格式

1.语法

  • 简单值: 字符串,数值,布尔和null。不支持JavaScript中的特殊值undefined
  • 对象:作为复杂数据类型,表示的是一组有序的键值对。每个键值对的值可以是简单类型也可以是复杂类型
  • 数组:表示一组有序的值的列表,可以通过数值索引来访问其中的值
JSON字符串必须使用双引号(单引号会导致语法错误)

2.对象

JSON中对象与JavaScript字面量稍微有一些不同

JavaScript中的对象字面量:

	var person = {
		name:"ethan",
		age:25
	};
JSON对象:

	{
		"name":"ethan",
		"age":28
	}
对象的属性必须加双引号

3.数组

JavaScript数组:
var values = [25,"hi",true];
JSON数组:

	[25,"hi",true]

2.解析与序列化

1.JSON对象

早期使用eval()函数解析并返回JavaScript对象。
现在通过JSON全局对象来解析json

stringify():
将JavaScript对象序列化为JSON字符串
parse():
将JSON字符串解析为原生JavaScript值

在序列化JavaScript对象时,所有函数及原型成员都会被忽略。此外,值为undefined的任何属性也会被跳过。结果中最终都是值为有效JSON数据类型的实例属性。

2.序列化选项

JSON.stringify()除了接收要序列化的JavaScript对象外,还可以接收另外两个参数。一:过滤器,可以是一个数组,也可以是一个函数;二:一个选项,表示 是否在JSON字符串中保留缩进。
1.过滤结果

如果过滤器参数是数组,那么JSON.stringify()的结果中将只包含数组中列出的属性 

	var person = {
		name:"zhangsan",
		"age":34,
		"hobbit":["football","basketball",'volleyball'],
		son:{
			name:"李四",
			age:10
		}
	};

	var json = JSON.stringify(person,["name","age"]);
	console.log(json);// {"name":"zhangsan","age":34}

如果过滤参数是函数

	var json = JSON.stringify(person,function(key,value){
		switch(key){
			case "name":
				return value;
			case "age":
				return undefined;//跳过指定的属性
			case "hobbit":
				return value.join(",");
			default:
				return value;
		}
	});
	console.log(json);// {"name":"zhangsan","hobbit":"football,basketball,volleyball","son":{"name":"李四"}}
2.字符串缩进
JSON.stringify()方法的第三个参数控制结果中的缩进和空白符。
	var person = {
		name:"zhangsan",
		"age":29,
		hobbit:["basketball",
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值