json和ajax 要学多久,03月02日作业:json和AJAX基本知识

本文介绍了JSON的基本概念、数据类型、序列化与解析方法,强调了其与JavaScript对象的区别,并展示了如何使用JSON.stringify()和JSON.parse()进行转化。同时,概述了AJAX的同步与异步请求,XMLHttpRequest的使用流程,以及如何处理响应数据。通过实例展示了JSON和JS对象之间的转化操作。
摘要由CSDN通过智能技术生成

作业一

一、Json相关知识

1、json是借用了JS对象字面量法来表示数据,是一种轻量级,用于数据交换与存储的格式化的字符串(本质上仍是一个字符串);

2、json数据类型:

简单值:100,”hello”,true,null,没有undefined

对象:{……}

数组:[……]

简单值字符串:必须且只能用双引号作为定界符;

3、json的两个方法:

序列化:JS对象序列化为JSON格式的字符串JSON.stringify();

解析:将JSON格式的字符串解析/还原为JS对象JSON.parse();

4、JSON与JS对象的区别:

没有变量声明:JSON中没有变量的概念

没有分号:以为JSON不是语句

JSON属性名必须加上双引号:任何时候任何地方都必须加双引号,且必须加双引号

5、JSON对象:这个对象不是JS预定义的,它是宿主环境定义的(浏览器)JSON.stringify(js);把JS对象序列化成JSON,JS对象序列化之后,会将以下三种成员删除:

(1)、方法(函数)

(2)、值为undefined的属性

(3)、继承的原型对象成员

6、JSON.stringify();有三个参数:第一个是被序列化的JS对象;第二个数组(限制序列化的属性成员)或者(回调函数可以对JSON的结果中的属性进一步处理,函数必须有return value;否则为空,不希望那个值出现可以让某个属性返回undefined);第三个参数设置json字符缩进(数字或者字符)

7、为了规范/自定义序列化的返回结果,允许在JS对象中创建一个方法:toJSON;toJSON在调用JSON.stringify()时自动调用,像魔术方法一样;

8、JSON.parse():有连个参数;第一个参数json字符串,第二个参数为回调函数(回调函数必须加上return value);

二、AJAX基础知识

1、同步和异步的概念:

同步:发出请求得到响应放回数据,才可以发送另一个

异步:发出请求,不需要得到响应回复就可以发出另一个请求,(回调函数);

2、XMLHttpRequest基本流程(两种形式):

(1)、请求的进本流程(GET)

a.创建请求对象:new XMLHttpRequest;

b.监听请求回调:readystatechange

c.设置请求参数:open(请求类型,请求url,是否异步)(默认true,异步)

d.发送请求:send(null)

(2)、请求的基本流程(POST)

a.创建请求对象:new XMLHttpRequest

b.监听请求回调:readystatechange

c.设置请求头:open(请求类型,请求url,是否异步):默认true,异步

d.设置请求头:setRequestHeader()

e.准备请求的数据:var data={……}

f.发送请求:send(‘user=’+data);可以添加键值对形式返回

3、监听事件:readystatechange

4、reponseText:返回ajax请求文本

5、reponseXML:返回的html/xml;

6、readyState===4:标识Ajax请求状态(4代表成功)

7、status:返回数据(200代表OK)

8、setRequestHeader('content-type','applicaton/x-www-form-urlencoded')表单数据形式

setRequestHeader('content-type','applicaton/json;charset=utf-8')json数据形式

9、setTimeout(函数、time) 方法用于在指定的毫秒数后调用函数或计算表达式。

10、οnsubmit="return false"禁用表单提交事件;

作业二

一、JSON和js对象之间转化练习

1、代码:

Document

varperson={

name:'peter zhu',

age:29,

isMarried:true,

course:{

name:'JavaScript',

grade:99

},

getName:function(){

returnthis.name;

},

hoppy:undefined,

// 继承的方法

toString:function(){

return'继承属性';

}

};

console.log(person);

personj=JSON.stringify(person,['name','age'],4);

console.log(personj);

person1=JSON.stringify(person,function(key,value){

if(key==="age"){

return"年龄是个秘密"

}

returnvalue;

},4);

console.log(person1);

vardetail={

name:"ldy",

age:10,

course:"php课程",

toJSON:function(){

returnthis.name+this.age+this.course;

}

};

console.log(detail);

console.log(JSON.stringify(detail));

varjsonStr='{"name":"peter zhu",\

"age":29,\

"isMarried":true,\

"course":{"name":"JavaScript","grade":99}}';

varjob=JSON.parse(jsonStr);

console.log(job);

joba=JSON.parse(jsonStr,function(key,value){

if(key==="isMarried"){

return"这是什么?";

}

returnvalue;

});

console.log(joba);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值