JSON【學(xué)習(xí)筆記】-創(chuàng)新互聯(lián)

文章目錄
  • JSON
    • 1、JSON簡(jiǎn)述
    • 2、XML與JSON
    • 3、JSON語(yǔ)法格式
    • 4、JSON數(shù)據(jù)的轉(zhuǎn)換
    • 5、FastJson介紹
    • 6、Java轉(zhuǎn)JSON
    • 7、JSON轉(zhuǎn)Java
    • 8、JSONField注解

創(chuàng)新互聯(lián)建站-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、成都多線服務(wù)器托管、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),服務(wù)電話:028-86922220JSON 1、JSON簡(jiǎn)述

JSON是一種獨(dú)立于語(yǔ)言和平臺(tái)、輕量級(jí)的數(shù)據(jù)交換格式全稱JavaScript對(duì)象表示法(JavaScript Object Notation)。起初來(lái)源于JavaScript這門語(yǔ)言,后來(lái)隨著使用的廣泛,幾乎每門開(kāi)發(fā)語(yǔ)言都有處理JSON的API。

  • JSON的特點(diǎn):
    • JSON 是一種輕量級(jí)的數(shù)據(jù)交換格式。
    • JSON采用完全獨(dú)立于語(yǔ)言的文本格式,就是說(shuō)不同的編程語(yǔ)言JSON數(shù)據(jù)是一致的。
    • JSON易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成(一般用于提升網(wǎng)絡(luò)傳輸速率)。
2、XML與JSON
  • 相同點(diǎn):
    • 都可以作為一種數(shù)據(jù)交換格式
  • 不同點(diǎn)
    • XML是重量級(jí)的,JSON是輕量級(jí)的,JSON占寬帶少,易于壓縮
    • XML和JSON都用在項(xiàng)目交互下,XML多用于做配置文件,JSON用于數(shù)據(jù)交互
    • JSON獨(dú)立于編程語(yǔ)言獨(dú)立存在,任何編程語(yǔ)言都可以去解析JSON
3、JSON語(yǔ)法格式

普通:
在這里插入圖片描述
數(shù)組:
在這里插入圖片描述
集合:
在這里插入圖片描述
一般來(lái)說(shuō)都不用手寫這樣的JSON格式,都是通過(guò)將對(duì)象啊、集合什么的自動(dòng)轉(zhuǎn)換成JSON格式的,然后傳到前端再進(jìn)行解析

4、JSON數(shù)據(jù)的轉(zhuǎn)換

目前,前后端的ajax通訊幾乎用的都是json格式的了,所以在開(kāi)發(fā)的過(guò)程中,我們經(jīng)常會(huì)涉及到JSON數(shù)據(jù)的轉(zhuǎn)換
在這里插入圖片描述

5、FastJson介紹
  • Fastjson 是一個(gè) Java 庫(kù),可以將 Java 對(duì)象轉(zhuǎn)換為 JSON 格式,當(dāng)然它也可以將 JSON 字符串轉(zhuǎn)換為 Java 對(duì)象。
  • FastJson特點(diǎn)如下:
    • 能夠支持將java bean序列化成JSON字符串,也能夠?qū)SON字符串反序列化成Java bean。
    • 顧名思義,F(xiàn)astJson操作JSON的速度是非常快的。
    • 無(wú)其他包的依賴, 使用比較方便。
6、Java轉(zhuǎn)JSON
  • 要使用這個(gè)必須先導(dǎo)入依賴
com.alibabafastjson1.2.3com.colobufastjson-jaxrs-json-provider0.3.1
  • 測(cè)試
// java對(duì)象轉(zhuǎn)化為JSON
    @Test
    public void javaBeanToJson(){// 1、創(chuàng)建Persion對(duì)象
        Person lzy = new Person("lzy", 25, DateUtils.getDateFormart());

        // 2、使用JSON對(duì)象 將persion對(duì)象轉(zhuǎn)換為JSON數(shù)據(jù)
        String s = JSON.toJSONString(lzy);
        System.out.println(s);
    }

    // Java中的集合轉(zhuǎn)JSON (List)
    @Test
    public void ListToJSON(){Person gzw = new Person("gzw", 25, DateUtils.getDateFormart());
        Person lzy = new Person("lzy", 25, DateUtils.getDateFormart());
        Person sjw = new Person("sjw", 25, DateUtils.getDateFormart());
        Listlists = new ArrayList<>();
        lists.add(gzw);
        lists.add(lzy);
        lists.add(sjw);
        String s = JSON.toJSONString(lists);
        System.out.println(s);
    }

    // Java中的集合轉(zhuǎn)JSON (Map)
    @Test
    public void MapToJSON(){Person gzw = new Person("gzw", 25, DateUtils.getDateFormart());
        Person lzy = new Person("lzy", 25, DateUtils.getDateFormart());
        Person sjw = new Person("sjw", 25, DateUtils.getDateFormart());
        Listlists = new ArrayList<>();
        lists.add(gzw);
        lists.add(lzy);
        lists.add(sjw);
        Mapmap = new HashMap<>();
        map.put("error_message", "success");
        map.put("lists", JSON.toJSONString(lists));
        String s1 = JSON.toJSONString(map);
        System.out.println(s1);
    }
7、JSON轉(zhuǎn)Java
// JSON轉(zhuǎn)對(duì)象
    @Test
    public void JSONToJavaBean(){String json = "{\"USERNAME\":\"lzy\",\"AGE\":25}";
        Person person = JSON.parseObject(json, Person.class);
        System.out.println(person);
    }

    @Test
    public void JSONToList(){String json = "[{\"USERNAME\":\"gzw\",\"AGE\":25,\"BIRTHDAY\":\"2023-01-14 15:47:15\"},{\"USERNAME\":\"lzy\",\"AGE\":25,\"BIRTHDAY\":\"2023-01-14 15:47:15\"},{\"USERNAME\":\"sjw\",\"AGE\":25,\"BIRTHDAY\":\"2023-01-14 15:47:15\"}]";
        Listlists = (List)JSON.parseArray(json, Person.class);
        for (Person list : lists) {System.out.println(list);
        }
    }
    @Test
    public void JSONToMap(){String json = "{\"error_message\":\"success\",\"lists\":\"[{\\\"USERNAME\\\":\\\"gzw\\\",\\\"AGE\\\":25,\\\"BIRTHDAY\\\":\\\"2023-01-14 15:55:10\\\"},{\\\"USERNAME\\\":\\\"lzy\\\",\\\"AGE\\\":25,\\\"BIRTHDAY\\\":\\\"2023-01-14 15:55:10\\\"},{\\\"USERNAME\\\":\\\"sjw\\\",\\\"AGE\\\":25,\\\"BIRTHDAY\\\":\\\"2023-01-14 15:55:10\\\"}]\"}";
        Mapmap = JSON.parseObject(json, Map.class);
        String s = map.get("lists");
        Listpeople = JSON.parseArray(s, Person.class);
        for (Person person : people) {System.out.println(person);
        }
    }
8、JSONField注解
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {// 可以通過(guò)name去指定輸出的名稱
    // ordinal可以指定輸出的順序
    // 使用serialize屬性,指定字段是否序列化
    @JSONField(name = "USERNAME", ordinal = 1)
    private String name;
    @JSONField(name = "AGE", ordinal = 2)
    private Integer age;
    @JSONField(serialize = false)
    private String birthday;
}

在這里插入圖片描述
總結(jié)

  • 這東西就是用來(lái)傳數(shù)據(jù)的
  • 主要掌握導(dǎo)入依賴,Java轉(zhuǎn)JSON,JSON轉(zhuǎn)Java
  • 常用API:
    • Java轉(zhuǎn)Json:JSON.toJSONString
    • Json轉(zhuǎn)Java:
      • JSON.parseObject(json, 對(duì)象.class) 轉(zhuǎn)為對(duì)象
      • JSON.parseArray(json, List中存儲(chǔ)的對(duì)象.class) 轉(zhuǎn)為L(zhǎng)ist
      • JSON.parseObject(json, Map.class) 轉(zhuǎn)為Map

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前文章:JSON【學(xué)習(xí)筆記】-創(chuàng)新互聯(lián)
文章位置:http://bm7419.com/article2/gipoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、微信公眾號(hào)、網(wǎng)頁(yè)設(shè)計(jì)公司、響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站