ToB企服应用市场:ToB评测及商务社交产业平台

标题: day33-JSON&Ajax01 [打印本页]

作者: 立聪堂德州十三局店    时间: 2022-12-6 22:20
标题: day33-JSON&Ajax01
JSON&Ajax01

1.JSON介绍

2.JSON快速入门

2.1JSON的定义格式
  1. var 变量名 = {
  2.     "k1":value,//Number类型
  3.     "k2":"str",//字符串类型
  4.     "k3":[],//数组类型
  5.     "k4":{},//json对象类型
  6.     "k5":[{},{}]//json数组
  7. };
复制代码
例子:
  1. var myJson = {
  2.     "key1":1234,//Number类型
  3.     "key2":"Hello",//字符串类型
  4.     "key3":[1,"he llo",2.3],//数组类型
  5.     "key4":{"age":12,"name":"jack"},//json对象类型
  6.     "key5":[  //json数组
  7.         {"k1":10,"k2":"milan"},
  8.         {"k3":30,"k4":"smith"}
  9.     ]};
复制代码
2.2格式规则

k-v形式,然后v中又可以嵌套k-v,并且每对k-v之间用逗号隔开
2.3入门案例
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>json快速入门案例</title>
  6.    
  7. </head>
  8. <body>
  9. <h1>json快速入门案例</h1>
  10. </body>
  11. </html>
复制代码
打开浏览器控制台,输出如下:

3.JSON对象和字符串对象转换

3.1应用实例
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>JSON对象和字符串对象转换</title>
  6.    
  7. </head>
  8. <body>
  9. <h1>JSON对象和字符串对象转换</h1>
  10. </body>
  11. </html>
复制代码
打开浏览器控制台,输出如下:
3.2注意事项和细节

例子
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>JSON和字符串转换的注意事项和细节</title>
  6.    
  7. </head>
  8. <body>
  9. <h1>JSON和字符串转换的注意事项和细节</h1>
  10. </body>
  11. </html>
复制代码
打开浏览器控制台,输出如下:
4.JSON在Java中使用

前面讲述的是前端页面中json对象和字符串之间的转化。在实际开发中,前端将json格式的字符串发送给后端,后端拿到后,可以将其转成java对象,进行其他操作,并可以在业务操作后,重新向前端发送json格式的字符串。
这意味着在Java后端中,同样有对象和字符串对象转换的需求。
4.1说明

4.2JSON在Java中的应用场景

4.3Java对象和JSON字符串互转

在项目中的lib目录下将gson.jar文件复制过来,点击add as library作为库
Javabean:Book类
  1. package com.li.json;
  2. //这是一个Javabean
  3. public class Book {
  4.     private Integer id;
  5.     private String name;
  6.     public Book(Integer id, String name) {
  7.         this.id = id;
  8.         this.name = name;
  9.     }
  10.     public Integer getId() {
  11.         return id;
  12.     }
  13.     public void setId(Integer id) {
  14.         this.id = id;
  15.     }
  16.     public String getName() {
  17.         return name;
  18.     }
  19.     public void setName(String name) {
  20.         this.name = name;
  21.     }
  22.     @Override
  23.     public String toString() {
  24.         return "Book{" +
  25.                 "id=" + id +
  26.                 ", name='" + name + '\'' +
  27.                 '}';
  28.     }
  29. }
复制代码
JavaJson:
  1. package com.li.json;
  2. import com.google.gson.Gson;
  3. public class JavaJson {
  4.     public static void main(String[] args) {
  5.         //创建一个gson对象,作为一个工具对象使用
  6.         Gson gson = new Gson();
  7.         //演示Javabean和json格式字符串的转换
  8.         Book book = new Book(10001, "三国演义");
  9.         //1.演示把一个Javabean转成json格式的字符串
  10.         String strBook = gson.toJson(book);
  11.         System.out.println("strBook=" + strBook);
  12.         //2.json字符串-->JavaBean
  13.         //(1)strBook 就是json字符串
  14.         //(2)Book.class 指定将json字符串转成Book类型的对象
  15.         //(3)底层使用反射机制来完成
  16.         Book book2 = gson.fromJson(strBook, Book.class);
  17.         System.out.println("book2=" + book2);
  18.     }
  19. }
复制代码
4.4List对象和JSON字符串互转

Book类见4.3
JavaJson:
[code]package com.li.json;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.List;public class JavaJson {    public static void main(String[] args) {        //创建一个gson对象,做为一个工具对象使用        Gson gson = new Gson();        //3.演示把List对象-->json字符串        ArrayList bookList = new ArrayList();        bookList.add(new Book(100, "天龙八部"));        bookList.add(new Book(200, "红楼梦"));        //因为把一个对象或者集合转成字符串,相对比较简单        //底层只需要遍历,按照json格式拼接返回即可        String strBookList = gson.toJson(bookList);        System.out.println("strBookList= " + strBookList);        //4.把json字符串转成-->list对象        //(1)如果要把json字符串,转成 集合 这种比较复杂的类型,需要使用Gson提供的一个类:TypeToken        //(2)这个TypeToken类在com.google.gson.reflect下面,在反射对象的时候使用        //(3)TypeToken 是一个自定义泛型类,通过TypeToken来指定我们需要转换成的类型        /*         * public class TypeToken {         *     final Class




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4