json和ajax资料整理

以下近期学习到json和ajax资料整理,若有不准,请各位指出,欢迎交流学习

json

简析:JSON,JavaScript Object Notation,一种更轻、更友好的用于接口(AJAX、REST等)数据交换的格式。 JSON是结构化数据串行化的文本格式,作为XML的一种替代品,用于表示客户端与服务器间数据交换有效负载的格式

目的:方便不同程序之间交换数据

背景:网页访问期间,浏览器和服务器之间交互只能发送字符串

格式:键值对,如{“pageIndex”:1,“pageSize”:20}

其他支持语言:js,python,Java,PHP都支持json的编码与解码

python内置支持:
1、导入模块:import json
2、将对象转换为json字符串:json.dumps()
3、将json字符串转换为python列表与数组:json.loads()

>>> string = '{"uploaded":1, "fileName": "foo.jpg", "url": "/files/foo.jpg"}'
>>> type(string)
<class 'str'>
>>> import json
>>> dicts = json.loads(string)
>>> dicts
{'uploaded': 1, 'fileName': 'foo.jpg', 'url': '/files/foo.jpg'}
>>> type(dicts)
<class 'dict'>
>>> strings = json.dumps(dicts)
>>> strings
'{"uploaded": 1, "fileName": "foo.jpg", "url": "/files/foo.jpg"}'
>>> type(strings)
<class 'str'>

js内置支持:
1、将对象转换为json字符串:JSON.stringify()
2、将json字符串转换为js的数组与对象:JOSN.parse()

>>> string = '{"uploaded":1, "fileName": "foo.jpg", "url": "/files/foo.jpg"}'
>>> dd = JSON.parse(string)
>>> {uploaded: 1, fileName: "foo.jpg", url: "/files/foo.jpg"}
>>> typeof(dd)
>>> "object"
>>> strings = JSON.stringify(dd)
>>> "{"uploaded":1,"fileName":"foo.jpg","url":"/files/foo.jpg"}"
>>> typeof(strings)
>>> "string"
>>> dd.uploaded
>>> 1
>>> dd.fileName
>>> "foo.jpg"
>>> dd.url	
>>> "/files/foo.jpg"

**序列化和反序列化:**这两个过程结合起来,可以轻松地存储和传输数据
1、序列化:将对象状态转换为可保持或可传输的格式的过程
2、反序列化:将流转换为对象
3、python序列化方法:

import json
json.dump(obj)#转换为流
json.dumps(obj)#转换为str

4、python反序列化方法:

import json
json.loads(obj)#转换为python对象
json.load(f)#json.loads是用来读取字符串的,json.load用来读取文件

ajax

简析:AJAX全称“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网bai页应用的网页开发du技术

又名:无刷新数据提交

背景:表单提交过程中会带来整个页面的刷新,如果发生错误,卡顿,对用户的体验很不好

特点:
1、不刷新页面情况下加载数据
2、经常加载json格式数据
3、在js中,json格式数据使用JSON对象进行编解码

xhr:1
1、和ajax关系:ajax核心之一,可以理解为实现方式
2、全称:XMLHttpRequest

#以下为和服务器交换时部分代码

xhr = new XMLHttpRequest()
xhr.open("get","url",async)#async默认为true,异步提交,否则为同步
xhr.send()
        btn = document.getElementById('btn')
        message = document.getElementById('message')
        ul = document.getElementById('news')

        xhr = new XMLHttpRequest()

        xhr.onreadystatechange = function(){
            console.log(this.readyState)
            console.log(this.status)

            if (this.readyState==4 && this.status==200){
                console.log("服务器返回:", this.responseText)
                message.innerHTML = this.responseText
            }
        }

        btn.onclick = function(){

            message.innerHTML = "请等待……"
            data = new FormData()
            data.append('newstype', document.getElementById('newstype').value)
            xhr.open("post", '{{ url_for("test_form") }}', true)
            xhr.send(data)
        }

jQuery的ajax对象

背景:jQuery提供了ajax封装对象,可以理解为ajax的升级版(封装)

标准使用:

$.ajax({
type:"POST",
url:"",
data:data,
contentType:,
success:function(result){},
……
});

快速使用:

$(dom).load(ulr)#dom加载url
$.get(url,data,callback)#get请求
$.post(url,data,callback)#post请求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值