Ajax基本使用与JSON格式转换

news/2024/7/10 23:02:22 标签: json, javascript, jquery

老规矩,今天的思维导图:

 

 

1.JSON使用

对象字符串,满足定义规则的字符串。

1.1 前端JSON格式字符串的转换使用

JavaScript——JSON.stringify(o);JSON.parse(jsonStr);
jQuery——$.parseJSON();

举例:

//jQuery方式    

let list = $.parseJSON(data);

//JavaScript通过fastJSON工具来转换  JSON

String jsonString = JSON.toJSONString(diaoSi);

1.2 后端JSON格式字符串的转换使用

 jackJSON

 fastJSON

2.jQuery之AJAX使用

原生js写ajax请求(写起来很复杂,而且需要考虑浏览器版本),而jQuery将这些复杂的业务逻辑进行封装处理,使用非常简单。

3.1 概述
Ajax(Asynchronous JavaScript and XML) 异步JavaScript和XML
核心:Ajax就是能够做到局部刷新!
3.2 方法

    ** ajax()
    ** get()
    ** post()

3.3 语法

javascript">    $.ajax({          
                url:"发送请求(提交或读取数据)的地址", 
                dataType:"预期服务器返回数据的类型",  
                type:"请求方式", 
                async:"true/false",
                data:{发送到/读取后台(服务器)的数据},
                 success:function(data){请求成功时执行},      
                 error:function(){请求失败时执行}
    });

<1> url 默认为当前页地址
<2> dataType 可用类型:
(如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递)
    xml:返回XML文档,可用JQuery处理。
    html:返回纯文本HTML信息。
    script:返回纯文本JavaScript代码。
    json:返回json数据。
    jsonp:(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
    text:返回纯文本字符串。
    说明:对于jsonjsonp的区别,本小白暂时没有深入了解,目前只知道jsonp可以跨域读取数据,有待进一步学习~
<3> type 可用类型主要为post和get两种(默认为get)
    get:从指定的资源请求数据(从服务器读取数据)
    post:向指定的资源提交要被处理的数据(向服务器提交数据)
<4> async 异步方式,默认为true,即异步方式。当设置为false时,为同步方式。
    异步方式:ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发ajax里的success方法,这时候执行的是两个线程。
    同步方式:在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

    说明:这里的同步和异步有待深入理解,以下实例均使用默认的异步方式
<5> data 请求的数据,{ }中可以填入多项数据。如果不填(一般为get请求),则读取对应地址的全部数据,此时可以在console中通过console.log(res)显示数据情况。
<6> success 和 error 两个函数 一般需要设置,方便确定请求是否成功,以及请求成功后的提示或是对数据的处理和显示。

post方式
格式

javascript">$.post(url, [data], [callback], [type]);
参数1:url,请求路径
参数2:data,请求参数
参数3:callback,回调函数
参数4:type,返回内容格式,默认的是text,xml, html, script, json, text, _default。

 

json对象转字符串的使用两种fastjson与ObjectMapper

package com.zking.ajax.test;
 
import java.util.ArrayList;
import java.util.List;
 
import com.alibaba.fastjson.JSON;
import com.zking.ajax.entity.DiaoSi;
 
public class Demo {
    public static void main(String[] args) {
        //ajax中  servlet里面将结果保存到out对象中输出   参数只能是字符串或者数组
        
        //问题:如何将一个对象或者数组转成一个字符串
        //该字符串必须要满足JSON的格式
        
        //JSON   对象字符串,简单的说就是一个字符串,符合对象的定义或者数组的定义集合定义对象数组的定义
        /**
         *     JSON的格式
         *         {
         *             "name":"value",
         *             "name":"value"
         *         }
         * 
         */
        //前端------parseJSON()
        //后台——————借助JSON工具包(很多)
        //今天  2个
        //fastJSON   jackJSON
        //使用前  必须导包
//        fastJSON
        
        DiaoSi diaoSi = new DiaoSi(1, "谢文建", "男");
        //需求:将diaosi转成字符串
        //不满足json格式
        System.out.println(diaoSi.toString());
        //通过fastJSON工具来转换  JSON
        String jsonString = JSON.toJSONString(diaoSi);
        //{"did":1,"dname":"谢文建","sex":"男"}
        System.out.println(jsonString);
        
        String str2 = "{\"did\":1,\"dname\":\"谢文建\",\"sex\":\"男\"}";
        DiaoSi parseObject = JSON.parseObject(str2,DiaoSi.class);
        System.out.println(parseObject);
        
        List<DiaoSi> list = new ArrayList<DiaoSi>();
        for(int i = 1;i<=500;i++) {
            if(i>=1 && i<=100) {
                list.add(new DiaoSi(i+1, "康康屌丝"+i, "男"));
            }else if(i>=101 && i<=200) {
                list.add(new DiaoSi(i+1, "刘湘杨"+i, "男"));
            }else if(i>=201 && i<=300) {
                list.add(new DiaoSi(i+1, "雷惠玲"+i, "女"));
            }else if(i>=301 && i<=400) {
                list.add(new DiaoSi(i+1, "邓婉婷"+i, "女"));
            }else if(i>=401 && i<=500) {
                list.add(new DiaoSi(i+1, "章游"+i, "男"));
            }
        }
        数组转换为字符串
        String jsonString2 = JSON.toJSONString(list);
        System.out.println(jsonString2);
        
//        [{"did":2,"dname":"康康屌丝1","sex":"男"},{"did":3,"dname":"康康屌丝2","sex":"男"}]";
        字符串 转为对象数组
        List<DiaoSi> parseArray = JSON.parseArray(str3, DiaoSi.class);
        System.out.println();
    }
}


ObjectMapper 转换工具的使用

package com.zking.ajax.test;
 
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zking.ajax.entity.DiaoSi;
 
public class Demo2 {
    public static void main(String[] args) throws Exception {
        
        //jackJSON
        //必须实例化ObjectMapper对象才能使用
        
        ObjectMapper mapper = new ObjectMapper();
        
        DiaoSi diaoSi = new DiaoSi(1, "谢文建", "男");
        对象转字符串
        String writeValueAsString = mapper.writeValueAsString(diaoSi);
//        {"did":1,"dname":"谢文建","sex":"男"}
        System.out.println(writeValueAsString);
        
        
        String ds = "{\"did\":1,\"dname\":\"谢文建\",\"sex\":\"男\"}";
        字符串转对象
        DiaoSi readValue = mapper.readValue(ds, DiaoSi.class);
        System.out.println(readValue);
    }


http://www.niftyadmin.cn/n/1830609.html

相关文章

day005--20150805

回顾:1.循环:反复执行一段相同或相似的代码2.循环三要素: 1)循环变量的初始化 2)循环的条件(以循环变量为基础) 3)循环变量的改变(向着循环的结束变) 循环变量: 在循环过程中所改变的那个量3.循环结构: 1)while:先判断后执行 2)do...while:先执行后判断 第1要素与第3要素相同时…

CocosPods 每次install pod 都卡在analyzing

最近使用CocoaPods来添加第三方类库&#xff0c;无论是执行pod install还是pod update都卡在了Analyzing dependencies不动 原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库&#xff0c;加一个参数可以省略这一步&#xff0c;然后速度就会提升不少。加参数的命令如…

Oracle术语

<1>RMAN RMAN&#xff08;Recovery Manager&#xff09;是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。 <2>"DG">DataGuard Oracle DataGuard是Oracle自带的数据同步功能&#xff…

Windows 之 获取管理员权限

新建文本文档&#xff0c;写入如下内容&#xff1a; Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\*\shell\runas] [HKEY_CLASSES_ROOT\*\shell\runas] "获取超级管理员权限" "Icon""C:\\Windows\\System32\\imageres.dll,-78" &q…

【java解惑】字符串的字节数组构造函数使用

如下代码&#xff1a;public class Example018 {public static void main(String[] args) {byte bs[] new byte[256];for (int i 0; i < 256; i) {bs[i] (byte) i;}string(bs);// 调用1string(bs, "iso-8859-1");// 调用2string(bs, "gbk");// 调用3…

sql删除数据库重复字段的行

要保留的数据&#xff1a; WITH summary AS (SELECT p.id, p.customer, p.total, ROW_NUMBER() OVER(PARTITION BY p.customer --分组 ORDER BY p.total DESC) AS rk FROM PURCHASES p) SELECT s.* FROM summary s WHERE s.rk 1 --1表示分组后分组结果第一行 稍微修改之后的删…

ubutun中安装nginx

一、安装 sudo wget http://nginx.org/download/nginx-1.4.4.tar.gz sudo tar zxvf ng。。。。cd nginx-1.4.4sudo ./configure sudo make sudo make install -------------------- ./configure: error: the HTTP rewrite module requires the PCRE library. ----------------…

【MINA】心跳机制

列上两篇好文章 http://www.cnblogs.com/pricks/p/3832882.html http://blog.csdn.net/cruise_h/article/details/13756219 心跳要解决的问题&#xff1a;说白了就是监控无效的连接并断开&#xff0c;多次超时无反应就断开的方式处理 MINA自带了对心跳协议的支持&#xff0c;可…