最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于fastjson的常見API詳解

 更新時間:2023年07月19日 08:50:29   作者:盡力漂亮  
這篇文章主要介紹了關(guān)于fastjson的常見API詳解,Fastjson是一個Java庫,可用于將Java對象轉(zhuǎn)換為其JSON表示,它還可用于將JSON字符串轉(zhuǎn)換為等效的Java對象,Fastjson可以處理任意Java對象,包括您沒有源代碼的預(yù)先存在的對象,需要的朋友可以參考下

簡介

首先,介紹一下fastjson。fastjson是由alibaba開源的一套json處理器。與其他json處理器(如Gson,Jackson等)和其他的Java對象序列化反序列化方式相比,有比較明顯的性能優(yōu)勢。

maven 添加配置:

< !-- 阿里fastjson包JSON轉(zhuǎn)換–>
< dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
< /dependency>

常見API

1. 將對象序列化成json字符串

String com.alibaba.fastjson.JSON.toJSONString(Object object)

效果

{
	"l_factory": [{
		"fcName": "淘寶",
		"l_worker": [{
			"age": 26,
			"name": "李飛",
			"sex": "男"
		}, {
			"age": 0
		}, {
			"age": 0
		}, {
			"age": 0
		}]
	}, {
		"fcName": "拼多多",
		"l_worker": []
	}],
	"pjName": "接口自動化",
	"waibao": true
}

2. 將json字符串反序列化成對象 Project

com.alibaba.fastjson.JSON.parseObject(String text, Class clazz)

 System.out.println("parseObject 將json字符串反序列化成對象------" + "waibao="+ testFastJson.getJsonValueObj(json, "waibao", Boolean.class));

效果

 waibao=true

3. 將json字符串反序列化成JSON對象 JSONObject

com.alibaba.fastjson.JSON.parseObject(String text)

[{
	"l_worker": [{
		"sex": "男",
		"name": "張三",
		"age": 39
	}, {
		"sex": "男",
		"name": "李四",
		"age": 24
	}],
	"fcName": "淘寶"
}, {
	"l_worker": [{
		"sex": "女",
		"name": "王香",
		"age": 26
	}, {
		"sex": "男",
		"name": "李飛",
		"age": 26
	}],
	"fcName": "拼多多"
}]

4. 根據(jù)key 得到j(luò)son中的json數(shù)組 JSONArray

com.alibaba.fastjson.JSONObject.getJSONArray(String key)

[{
	"sex": "男",
	"name": "張三",
	"age": 39
}, {
	"sex": "男",
	"name": "李四",
	"age": 24
}]
[{
	"sex": "男",
	"name": "張三",
	"age": 39
}, {
	"sex": "男",
	"name": "李四",
	"age": 24
}]

5. 根據(jù)下標拿到j(luò)son數(shù)組的json對象 JSONObject

com.alibaba.fastjson.JSONArray.getJSONObject(int index)

效果

{
	"sex": "男",
	"name": "張三",
	"age": 39
}

6.根據(jù)key拿到j(luò)son的字符串值 String

com.alibaba.fastjson.JSONObject.getString(String key)

api詳細案例

Project

package com.json;
import java.util.List;
public class Project {
    String pjName;
    boolean waibao;
    public boolean isWaibao() {
        return waibao;
    }
    public void setWaibao(boolean waibao) {
        this.waibao = waibao;
    }
    List<Factory> l_factory;
    //List<Worker> worker;
    public String getPjName() {
        return pjName;
    }
    public void setPjName(String pjName) {
        this.pjName = pjName;
    }
    public List<Factory> getL_factory() {
        return l_factory;
    }
    public void setL_factory(List<Factory> l_factory) {
        this.l_factory = l_factory;
    }
}

Factory

package com.json;
import java.util.List;
public class Factory {
    String fcName;
    List<Worker> l_worker;
    public String getFcName() {
        return fcName;
    }
    public void setFcName(String fcName) {
        this.fcName = fcName;
    }
    public List<Worker> getL_worker() {
        return l_worker;
    }
    public void setL_worker(List<Worker> l_worker) {
        this.l_worker = l_worker;
    }
}

Worker

package com.json;
public class Worker {
    String name;
    String sex;
    int age;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
}

TestFastJson

package com.json;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class TestFastJson {
	public static void main(String[] args) {
		TestFastJson testFastJson = new TestFastJson();
		Project project = testFastJson.init();
		String json = testFastJson.getJsonString(project);
		// System.out.println("json="+json);
		// {"l_factory":[{"fcName":"淘寶","l_worker":[{"age":26,"name":"李飛","sex":"男"},{"age":0},{"age":0},{"age":0}]},{"fcName":"拼多多","l_worker":[]}],"pjName":"接口自動化","waibao":true}
		// System.out.println("parseObject 將json字符串反序列化成對象------" + "waibao="
		// + testFastJson.getJsonValueObj(json, "waibao", Boolean.class));
		// waibao=true
		JSONArray array = (JSONArray) testFastJson.getJsonValueObj(json, "l_factory", JSONArray.class);
		// System.out.println("array=" + array.toString());
		// array=[{"l_worker":[{"sex":"男","name":"張三","age":39},{"sex":"男","name":"李四","age":24}],"fcName":"淘寶"},{"l_worker":[{"sex":"女","name":"王香","age":26},{"sex":"男","name":"李飛","age":26}],"fcName":"拼多多"}]
		// String jsonArr = testFastJson.getJsonArrayValue(array, 0, "fcName");
		// System.out.println("fcname:" + jsonArr);
		// fcname:淘寶
		JSONArray array2 = testFastJson.getJsonArrayValueIsArray(array, 0, "l_worker");
		// System.out.println("array2=" + array2.toString());
		// array2=[{"sex":"男","name":"張三","age":39},{"sex":"男","name":"李四","age":24}]
		String json2 = testFastJson.getJsonArrayValue(array2, 0);
		// System.out.println("json2="+json2);
		// {"sex":"男","name":"張三","age":39}
		// System.out.println("name"+testFastJson.getJsonValueObj(json, key, clazz));
		/*
		 * 以下輸出 name=張三 sex=男 age=39 jsonArr2=男
		 * 
		 */
		System.out.println("name=" + testFastJson.getJsonValueObj(json2, "name", String.class));
		System.out.println("sex=" + testFastJson.getJsonValueObj(json2, "sex", String.class));
		System.out.println("age=" + testFastJson.getJsonValueObj(json2, "age", Integer.class));
		String jsonArr2 = testFastJson.getJsonArrayValue(array2, 0, "sex");
		System.out.println("jsonArr2=" + jsonArr2);
		/*
		 * 接口自動化 淘寶 張三
		 * 
		 */
		System.out.println(testFastJson.getJsonValue(json));
		System.out.println(testFastJson.getJsonValue(json, "l_factory"));
		System.out.println(testFastJson.getJsonValue(json, "l_factory", "l_worker"));
	}
	public static void main1(String args[]) {
		TestFastJson tfj = new TestFastJson();
		Project prj = tfj.init();
		String json = tfj.getJsonString(prj);
		prj.setPjName("序列化后修改pjname");
		System.out.println(prj.getPjName());// 序列化后修改pjname
		Project po = JSON.parseObject(json, Project.class);
		System.out.println(po.getPjName());// 接口自動化
	}
	public void tt(Class clazz) {
		System.out.println(clazz.getSimpleName());
		if (clazz.getName().equals("String")) {
			System.out.println("stringllala");
		}
	}
	/**
	 * 將對象轉(zhuǎn)化為json
	 * 
	 * @param project
	 * @return
	 */
	private String getJsonString(Object object) {
		// TODO Auto-generated method stub
		String json = JSON.toJSONString(object);
		return json;
	}
	/**
	 * 初始化
	 * 
	 * @return
	 */
	private Project init() {
		Project project = new Project();
		Factory f1 = new Factory();
		Factory f2 = new Factory();
		Worker wk1 = new Worker();
		wk1.setName("張三");
		wk1.setAge(39);
		wk1.setSex("男");
		Worker wk2 = new Worker();
		wk2.setName("李四");
		wk2.setAge(24);
		wk2.setSex("男");
		Worker wk3 = new Worker();
		wk3.setName("王香");
		wk3.setAge(26);
		wk3.setSex("女");
		Worker wk4 = new Worker();
		wk4.setName("李飛");
		wk4.setAge(26);
		wk4.setSex("男");
		List<Worker> workers1 = new ArrayList<>();
		workers1.add(wk1);
		workers1.add(wk2);
		List<Worker> workers2 = new ArrayList<>();
		workers2.add(wk3);
		workers2.add(wk4);
		f1.setFcName("淘寶");
		f1.setL_worker(workers1);
		f2.setFcName("拼多多");
		f2.setL_worker(workers2);
		List<Factory> factorys = new ArrayList<Factory>();
		factorys.add(f1);
		factorys.add(f2);
		project.setPjName("接口自動化");
		project.setWaibao(true);
		project.setL_factory(factorys);
		return project;
	}
	/**
	 * 根據(jù)key得到j(luò)son的value
	 * 
	 */
	public String getJsonValue(String json) {
		JSONObject jsonObject = JSON.parseObject(json);
		String value = jsonObject.getString("pjName");
		return value;
	}
	/**
	 * 根據(jù)對象的類型,自動識別獲取該對象的值
	 */
	public Object getJsonValueObj(String json, String key, Class clazz) {
		JSONObject jo = JSON.parseObject(json);
		if (clazz.getSimpleName().equals("String")) {
			String value = jo.getString(key);
			return value;
		} else if (clazz.getSimpleName().equals("Integer")) {
			Integer value = jo.getInteger(key);
			return value;
		} else if (clazz.getSimpleName().equals("Boolean")) {
			Boolean value = jo.getBoolean(key);
			return value;
		} else if (clazz.getSimpleName().equals("JSONArray")) {
			JSONArray array = jo.getJSONArray(key);
			return array;
		} else {
			return "error, 暫不支持的類型:" + clazz.toString();
		}
	}
	/**
	 * 根據(jù)key得到j(luò)son的集合
	 * 
	 */
	public JSONArray getJsonArray(String json, String key) {
		JSONObject jo = JSON.parseObject(json);
		JSONArray array = jo.getJSONArray(key);
		return array;
	}
	public String getJsonValue(String json, String key) {
		JSONObject jo = JSON.parseObject(json);
		JSONArray array = jo.getJSONArray(key);
		JSONObject jo_fc = array.getJSONObject(0);
		String value = jo_fc.getString("fcName");
		return value;
	}
	public String getJsonValue(String json, String key, String keyW) {
		JSONObject jo = JSON.parseObject(json);
		JSONArray array = jo.getJSONArray(key);
		JSONObject jo_fc = array.getJSONObject(0);
		JSONArray arrayW = jo_fc.getJSONArray(keyW);
		JSONObject jo_wk = arrayW.getJSONObject(0);
		String value = jo_wk.getString("name");
		int age = jo_wk.getIntValue("age");
		return value;
	}
	/**
	 * 根據(jù)下標得到j(luò)son數(shù)組的值
	 * 
	 * @return
	 */
	public String getJsonArrayValue(JSONArray array, int index) {
		JSONObject jo_fc = array.getJSONObject(index);
		String json = jo_fc.toJSONString();
		return json;
	}
	/**
	 * 根據(jù)下標得到j(luò)'son數(shù)組的值,再根據(jù)key得到該值的value,該值類型是String
	 * 
	 * @param array
	 * @param index
	 * @param key
	 * @return
	 */
	public String getJsonArrayValue(JSONArray array, int index, String key) {
		JSONObject jo_fc = array.getJSONObject(index);
		String value = jo_fc.getString(key);
		return value;
	}
	/**
	 * 根據(jù)下標得到j(luò)son數(shù)組的值,再根據(jù)key得到該值的value,該值類型是string
	 * 
	 * @param array
	 * @return
	 */
	public JSONArray getJsonArrayValueIsArray(JSONArray array, int index, String key) {
		JSONObject jo_fc = array.getJSONObject(index);
		JSONArray arrayNew = jo_fc.getJSONArray(key);
		return arrayNew;
	}
}

到此這篇關(guān)于關(guān)于fastjson的常見API詳解的文章就介紹到這了,更多相關(guān)fastjson常見API內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java多線程死鎖問題詳解(wait和notify)

    Java多線程死鎖問題詳解(wait和notify)

    線程之間形成相互等待資源的環(huán)時,就會形成順序死鎖,下面這篇文章主要給大家介紹了關(guān)于Java多線程死鎖問題(wait和notify)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 關(guān)于jar包增量更新分析

    關(guān)于jar包增量更新分析

    這篇文章主要介紹了關(guān)于jar包增量更新分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java Swing組件setBounds()簡單用法實例分析

    java Swing組件setBounds()簡單用法實例分析

    這篇文章主要介紹了java Swing組件setBounds()簡單用法,結(jié)合實例形式分析了Swing組件setBounds()方法的功能與簡單使用方法,需要的朋友可以參考下
    2017-11-11
  • SpringBoot后臺實現(xiàn)文件上傳下載

    SpringBoot后臺實現(xiàn)文件上傳下載

    這篇文章主要為大家詳細介紹了SpringBoot后臺實現(xiàn)文件上傳下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Java實現(xiàn)文件上傳的兩種方法(uploadify和Spring)

    Java實現(xiàn)文件上傳的兩種方法(uploadify和Spring)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)文件上傳的兩種方法,uploadify和Spring實現(xiàn)文件上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java虛擬機JVM類加載機制(從類文件到虛擬機)

    Java虛擬機JVM類加載機制(從類文件到虛擬機)

    所謂的類加載機制就是虛擬機將class文件加載到內(nèi)存,并對數(shù)據(jù)進行驗證,轉(zhuǎn)換解析和初始化,形成虛擬機可以直接使用的java類型,本文給大家介紹類加載機制過程從類文件到虛擬機的詳細說明,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • Java如何使用字符流讀寫非文本文件

    Java如何使用字符流讀寫非文本文件

    這篇文章主要介紹了Java如何使用字符流讀寫非文本文件,以Java的字符流讀取文件為例:它只能讀取0-65535之間的字符,可以看出來字符都是正數(shù),但是二進制的byte是可以為負數(shù)的,需要的朋友可以參考下
    2023-04-04
  • Java通過接口實現(xiàn)匿名類的實例代碼

    Java通過接口實現(xiàn)匿名類的實例代碼

    這篇文章介紹了Java通過接口實現(xiàn)匿名類的實例代碼,有需要的朋友可以參考一下
    2013-10-10
  • springboot中通過lua腳本來獲取序列號的方法

    springboot中通過lua腳本來獲取序列號的方法

    這篇文章主要介紹了springboot中通過lua腳本來獲取序列號的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 利用Java實現(xiàn)讀寫bmp文件的示例代碼

    利用Java實現(xiàn)讀寫bmp文件的示例代碼

    位圖(Bitmap,BMP)是一種最原始、最簡單的圖像文件格式,由微軟和 IBM 在 1980 年代聯(lián)合制定,用于 Windows 操作系統(tǒng),本項目旨在用純 Java 從零實現(xiàn)一個輕量級的 BMP 文件讀寫庫,需要的朋友可以參考下
    2025-05-05

最新評論

吴桥县| 桃园县| 陵川县| 临颍县| 麟游县| 治多县| 武功县| 沙坪坝区| 体育| 贵德县| 集贤县| 库车县| 贵港市| 湟中县| 百色市| 吉林省| 和田市| 建瓯市| 城步| 石狮市| 元江| 卢氏县| 牙克石市| 琼海市| 天峨县| 于都县| 泽普县| 永春县| 扶绥县| 东乡族自治县| 措勤县| 民和| 嘉鱼县| 勃利县| 项城市| 通许县| 汽车| 武强县| 满城县| 霍州市| 方山县|