ajax JQuery.ajax JSON

本贴最后更新于 2419 天前,其中的信息可能已经天翻地覆

869681aa36ce47189e4dd4b8ad5e8b00-image.png

详细文档见:http://www.runoob.com/ajax/ajax-tutorial.html


1.ajax

1.1ajax 概念

异步JavaScript和XML,AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

原理:客户端向浏览器XMLHttpRequest发送请求,由XMLHttpRequest向服务端发送请求并接受响应的数据,再由XMLHttpRequest向浏览器解析数据。

1.2 原生 ajax 使用步骤

 ajax入门程序步骤:

    1.创建一个核心对象 XMLHttpRequest

    2.编写一个回调函数

    3.编写请求方式和请求的路径(open操作)

    4.发送请求(send操作)

1.3ajax-api 详解

1.3.1 常用属性:

    onreadystatechange:检测readyState状态改变的时候

    readyState:ajax核心对象的状态

        0:核心对象创建  1:调用了open方法  2:调用了send方法  3:部分响应已经生成(没有意思)  4:响应已经完成(使用的是这个状态)

    status:状态码 详见09 servelet

        if(xmlhttp.readyState==4 && xmlhttp.status==200){

        }

    responseText:响应回来的文本

1.3.2 常用方法:

    open("请求方式","请求路径"[,"是否异步"]) 默认异步

    send(["参数"]):发送请求 参数是请求方式为post的时候的参数,get方式的参数在地址栏。

    setRequestHeader("content-type","form表单enctype属性的值"):设置post请求的参数的类型 必须放在send方法之前.

2.JQuery.ajax

通过 HTTP 请求加载远程数据。对原生 ajax 做了封装,使用 ajax 更加方便。四种方式:

2.1:jquery 对象.load(url,params,function(数据){});

2.2★$.get(url,params,function(数据){},type);

    发送get请求的ajax

        url:请求的路径

        params:请求的参数 参数为key\value的形式 key=value  {"":"","":""}

        fn:回调函数 参数就是服务器发送回来的数据

        type:返回内容格式,xml, html, script, json, text, _default。

    若结果为json格式,  打印返回值的时候是一个对象 

        例如若json为 {"result":"success","msg":"成功"}

        获取msg的值 只需要参数(数据).msg

2.3★ $.post(url,params,function(数据){},type);

    发送post请求的ajax    

ea285e395ff5412fac84b59c772c1fc3-image.png

3.JSON

3.1json 概念

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。开发中常用于前台与后台数据交换的一种格式。

3.2json 格式:

    格式1:value可以为任意值

        {"key":value,"key1":value1}

    格式2:e可以为任意值

        [e1,e2]

3.3json 解析

   var json= {"usename":"tom","age":18};

   alert(json.age);

3.3jsonlib 工具类,可以使对象转换成 json 数据

    1.导入jar包

    2.使用api

        JSONArray.fromObject(对象)  数组和list  

        JSONObject.fromObject(对象) bean和map  

另附:JsonUtils 核心代码【曾在 ssm 项目中使用】

/**
* 自定义响应结构
*/
public class JsonUtils {

// 定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();

/**
 * 将对象转换成json字符串。
 * <p>Title: pojoToJson</p>
 * <p>Description: </p>
 * @param data
 * @return
 */
public static String objectToJson(Object data) {
	try {
		String string = MAPPER.writeValueAsString(data);
		return string;
	} catch (JsonProcessingException e) {
		e.printStackTrace();
	}
	return null;
}

/**
 * 将json结果集转化为对象
 * 
 * @param jsonData json数据
 * @param clazz 对象中的object类型
 * @return
 */
public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
    try {
        T t = MAPPER.readValue(jsonData, beanType);
        return t;
    } catch (Exception e) {
    	e.printStackTrace();
    }
    return null;
}

/**
 * 将json数据转换成pojo对象list
 * <p>Title: jsonToList</p>
 * <p>Description: </p>
 * @param jsonData
 * @param beanType
 * @return
 */
public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
	JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
	try {
		List<T> list = MAPPER.readValue(jsonData, javaType);
		return list;
	} catch (Exception e) {
		e.printStackTrace();
	}
	
	return null;
}

}
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3169 引用 • 8207 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 319 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6607 引用 • 29637 回帖 • 249 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    90 引用 • 383 回帖 • 1 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    162 引用 • 473 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 290 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 335 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 410 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 621 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 741 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖 • 2 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    523 引用 • 4581 回帖 • 691 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 688 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    51 引用 • 226 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    27 引用 • 66 回帖 • 1 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 25 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    131 引用 • 1114 回帖 • 148 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    164 引用 • 1456 回帖 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    941 引用 • 1458 回帖 • 150 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    123 引用 • 168 回帖
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    333 引用 • 323 回帖 • 64 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 180 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 22 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1425 引用 • 10043 回帖 • 468 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 509 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 41 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 690 关注