JSON与AJAX

2021-02-19 01:19

阅读:635

标签:同步请求   中文   数据类型   log   遍历   转换   gif   prot   query   

JSON

JSON?

  • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析与生成
  • JSON采用完全独立于语言的文本格式,并且很多语言都支持json(C,C++,C#,Java,JavaScript...)
  • JSON的格式就是key:value形式,类似于map集合

JSON在JavaScript中的使用

JSON的定义

JSON的访问

分别输出上面中的json对象中的属性值

JSON的两个常用方法

json的两种形式:

  • 一种以对象的形式存在,称为json对象;
  • 一种以字符串的形式存在,称为json字符串;

JSON.stringify() 把json 对象转换成为json 字符串
JSON.parse() 把json 字符串转换成为json 对象

JSON在java中的使用

gson-2.2.4.jar包方式

json字符串与JavaBan对象之间的转换

@Test
public void test01(){
    //普通的一个JavaBan对象
    Person person = new Person("张三",18,"男",178.5);
    //Gson对象,可以将java对象与json互转的对象
    Gson gson = new Gson();
    //将JavaBan对象转化为json字符串
    String personJson = gson.toJson(person);
    System.out.println(person);//Person{name=‘张三‘, age=18, sex=‘男‘, height=178.5}
    System.out.println(personJson);//{"name":"张三","age":18,"sex":"男","height":178.5}
    //将json字符串转换为JavaBan对象
    Person person1 = gson.fromJson(personJson, Person.class);
    System.out.println(person1);//Person{name=‘张三‘, age=18, sex=‘男‘, height=178.5}
}

json字符串与List集合之间的转换

public void test02() {
    //一个普通的集合,里面装着普通的Java对象
    List list = new ArrayList();
    list.add(new Person("张三", 18, "男", 178.5));
    list.add(new Person("李四", 28, "女", 278.5));
    list.add(new Person("王五", 38, "男", 378.5));
    //创建Gson对象
    Gson gson = new Gson();
    //将list集合转换为json字符中,
    String listJson = gson.toJson(list);
    System.out.println(listJson);
 /*[{"name":"张三","age":18,"sex":"男","height":178.5},
    {"name":"李四","age":28,"sex":"女","height":278.5},
    {"name":"王五","age":38,"sex":"男","height":378.5}]*/
    //将json字符串转换为List集合,后面的参数是一个匿名类,这是第一种方法
    // List jsonList = gson.fromJson(listJson, new TypeToken>() {}.getType());
    //第二种方法:创建一个类,继承TypeToken类,它的泛型里面就是要转换的集合
    //public class JsonList extends TypeToken> {}
    List jsonList = gson.fromJson(listJson, new JsonList().getType());
    for (Person person : jsonList) {
        System.out.println(person);
        /*Person{name=‘张三‘, age=18, sex=‘男‘, height=178.5}
          Person{name=‘李四‘, age=28, sex=‘女‘, height=278.5}
          Person{name=‘王五‘, age=38, sex=‘男‘, height=378.5}*/
    }
}

json字符串与map集合之间的转换

@Test
public void test03() {
    //一个普通的集合,里面装着普通的Java对象
    Map map = new HashMap();
    map.put("小三",new Person("张三", 18, "男", 178.5));
    map.put("小四",new Person("李四", 28, "女", 278.5));
    map.put("小五",new Person("王五", 38, "男", 378.5));
    Gson gson = new Gson();
    //map集合转换为json字符串
    String mapJson = gson.toJson(map);
    System.out.println(mapJson);
    /*{"小三":{"name":"张三","age":18,"sex":"男","height":178.5},
    "小四":{"name":"李四","age":28,"sex":"女","height":278.5},
    "小五":{"name":"王五","age":38,"sex":"男","height":378.5}}*/
    //json字符串转换为Map
    Map jsonMap = gson.fromJson(mapJson, new TypeToken>() {
    }.getType());
    Set> entries = jsonMap.entrySet();
    for (Map.Entry entry : entries) {
        System.out.println(entry);
        /*小三={name=张三, age=18.0, sex=男, height=178.5}
            小四={name=李四, age=28.0, sex=女, height=278.5}
            小五={name=王五, age=38.0, sex=男, height=378.5}*/
    }
}

fastjson-1.1.24.jar包的方式

@Test
public void test04() {
    //一个普通的集合,里面装着普通的Java对象
    List list = new ArrayList();
    list.add(new Person("张三", 18, "男", 178.5));
    list.add(new Person("李四", 28, "女", 278.5));
    list.add(new Person("王五", 38, "男", 378.5));
    //将list集合转换为json字符串
    String listJson = JSON.toJSON(list).toString();
    System.out.println(listJson);
    //将json字符串转换为List对List集合
    List JsonList = JSON.parseArray(listJson, Person.class);
    for (Person person : JsonList) {
        System.out.println(person);
    }
}
@Test
public void test05() {
    //一个普通的集合,里面装着普通的Java对象
    Map map = new HashMap();
    map.put("小三",new Person("张三", 18, "男", 178.5));
    map.put("小四",new Person("李四", 28, "女", 278.5));
    map.put("小五",new Person("王五", 38, "男", 378.5));
    //将Map集合转换为json字符串
    Object mapJson = JSON.toJSON(map);
    System.out.println(mapJson);
    String mapJsonString = mapJson.toString();
    // 将json字符串转换为Map集合,JSON中没有直接对map集合转换的方法,需要下面这种匿名类的方式
    Map jsonMap = JSON.parseObject(mapJsonString, new TypeReference>() {}.getType());
    Set> entries = jsonMap.entrySet();
    for (Map.Entry entry : entries) {
        System.out.println(entry);

AJAX

什么是AJAX?

  • Ajax 即“Asynchronous* Javascript And* XML”(异步 JavaScript 和 XML)
  • 是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页(局部更新页面)的技术
  • 浏览器地址栏不会发生变化
  • 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新

原生AJAX

html


    

Servlet程序

@WebServlet("/ajaxServlet")
public class AjaxServlet extends BaseDAO {
    protected void javaSciptAjax(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Person person = new Person("张三",18,"男",188.2);
        //将Java对象昂转换为json字符串
        String personJson = JSON.toJSON(person).toString();
        //响应
        response.getWriter().write(personJson);
    }
}

jQuery中的AJAX

属性介绍:

  • url:表示请求的地址
  • type: 表示请求的方式,是GET还是POST
  • data: 发送给服务器的数据 就是?后面连着的,有两种格式
    • key=value&key=value
    • {key:value} 多个使用逗号隔开
  • success:请求成功后,响应的回调函数
  • dataType : 响应的数据类型
    • text【纯文本】xml【xml数据】 json【json对象】

ajax方法


protected void jQueryAjax(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Person person = new Person("李四", 28, "女", 278.5);
    //将Java对象昂转换为json字符串
    String personJson = JSON.toJSON(person).toString();
    //响应
    response.getWriter().write(personJson);
}

get()、post()方法

四个参数:

  1. 请求的地址
  2. 请求参数
  3. 响应回调函数
  4. 响应的数据类型


getJSON()方法

  • 比get()、post()方法两个方法少一个参数,就是响应的数据类型
  • 默认就是响应的json格式专用方法

serialize()方法-表单序列化

  • 这个方法可以将form表单中要提交的属性提取出来转换为key=value&key=value形式

它默认会把中文转换为%E形式的数据

JSON与AJAX

标签:同步请求   中文   数据类型   log   遍历   转换   gif   prot   query   

原文地址:https://www.cnblogs.com/MLYR/p/14406812.html


评论


亲,登录后才可以留言!