JAVA自動(dòng)化(一)--JSON-創(chuàng)新互聯(lián)

前言

本篇為JAVA自動(dòng)化的第一篇章,主要為JSON得序列化與反序列化
主要講述后續(xù)自動(dòng)化中能夠使用得部分,如果想了解更多可以查看官方文檔
學(xué)習(xí)條件:JAVA基礎(chǔ)部分

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比紅安網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式紅安網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋紅安地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。JSON介紹

JSON(JavaScript Object Notation, JavaScript 對象表示法) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。

JSON語法規(guī)則

1.數(shù)據(jù)在鍵值對當(dāng)中
2.數(shù)據(jù)由逗號(hào)分隔
3.大括號(hào){}保存對象

{"name": "Kai",
    "age": "25"
}

4.中括號(hào)保存數(shù)組

{"hobby": ["吃飯", "睡覺", "打豆豆"]
}
JSON值類型:
  • 數(shù)字(整數(shù)或浮點(diǎn)數(shù))
  • 字符串(在雙引號(hào)中)
  • 邏輯值(true 或 false)
  • 數(shù)組(在中括號(hào)中)
  • 對象(在大括號(hào)中)
  • null
{"name": "Kai",
    "age": 25,
    "height": 180,
    "isSingle": false,
    "address": {"provinces": "上海市",
        "city": "徐匯區(qū)"
    },
    "hobby": ["吃飯", "睡覺", "打豆豆"],
    "weight": null
}
Jackson處理JSON

Java生態(tài)圈中有很多處理Json格式化的類庫
常見的解析器:Jsonlib,Gson,fastjson,Jackson,我們一般使用Jackson來處理Json
Jackson是一個(gè)功能強(qiáng)大得Java序列化庫,除了json之外,還支持YAML,CSV,XML

Maven相關(guān)配置:https://mvnrepository.com 在此網(wǎng)站找到相關(guān)版本,或者直接復(fù)制下方

com.fasterxml.jackson.corejackson-databind2.13.3
相關(guān)使用

ObjectMapper是序列化/反序列化操作的核心,Jackson的所有操作都是在ObjectMapper中實(shí)現(xiàn)

ObjectMapper objectMapper = new ObjectMapper();
序列化:JAVA對象 -->JSON

不管你是什么結(jié)構(gòu)的對象,想轉(zhuǎn)json,直接 objectMapper.writeValueAsString() 搞定。

對象轉(zhuǎn)json
//先準(zhǔn)備一個(gè)學(xué)生類
public class Student {private String name;
    private int age;
 
 	public Student() {}

    public Student(String name, int age) {this.name = name;
        this.age = age;
    }

    public String getName() {return name;
    }

    public void setName(String name) {this.name = name;
    }

    public int getAge() {return age;
    }

    public void setAge(int age) {this.age = age;
    }

    @Override
    public String toString() {return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
//將學(xué)生類轉(zhuǎn)為json
package json;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonDemo1 {public static void main(String[] args) throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();
        Student student = new Student("Kai", 25);
        String json = objectMapper.writeValueAsString(student);
        System.out.println(json);
    }
}
map轉(zhuǎn)json
package json;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;

public class JsonDemo2 {public static void main(String[] args) throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();

        HashMapmap = new HashMap<>();
        map.put("test",1);
        map.put("age",18);

        String json = objectMapper.writeValueAsString(map);
        System.out.println(json);
    }
}
反序列化:JSON–>JAVA對象 json轉(zhuǎn)對象
package json;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonDemo3 {public static void main(String[] args) throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();
        String json = "{\"name\":\"Kai\",\"age\":\"25\"}";
        //JSON字符串轉(zhuǎn)為對象
        Student student = objectMapper.readValue(json, Student.class);
        System.out.println(student);
        
    }
}
json轉(zhuǎn)map
package json;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.HashMap;

public class JsonDemo4 {public static void main(String[] args) throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();
        String json = "{\"name\":\"Kai\",\"age\":\"25\"}";
        HashMap hashMap = objectMapper.readValue(json, HashMap.class);
        System.out.println(hashMap);
    }
}
結(jié)尾

本篇簡單介紹了json和Jackson的簡單用法,主要為后續(xù)JAVA自動(dòng)化中做準(zhǔn)備,如需關(guān)于Jackson的詳細(xì)內(nèi)容可查看官網(wǎng)

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

網(wǎng)站標(biāo)題:JAVA自動(dòng)化(一)--JSON-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article30/pseso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、企業(yè)建站、商城網(wǎng)站、網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)網(wǎng)站建設(shè)

廣告

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

成都定制網(wǎng)站建設(shè)