成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Json的詳細(xì)介紹以及fastjson使用教程

這篇文章主要介紹“Json的詳細(xì)介紹以及fastjson使用教程”,在日常操作中,相信很多人在Json的詳細(xì)介紹以及fastjson使用教程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Json的詳細(xì)介紹以及fastjson使用教程”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶需求中心、市場為導(dǎo)向”的快速反應(yīng)體系。對公司的主營項目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計、行業(yè) / 企業(yè)門戶設(shè)計推廣、行業(yè)門戶平臺運(yùn)營、成都app開發(fā)、手機(jī)網(wǎng)站開發(fā)、微信網(wǎng)站制作、軟件開發(fā)、棕樹數(shù)據(jù)中心等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從創(chuàng)新互聯(lián)建站可以獲得的服務(wù)效果。

Json是一種輕量級的數(shù)據(jù)交換格式,采用一種“鍵:值”對的文本格式來存儲和表示數(shù)據(jù),在系統(tǒng)交換數(shù)據(jù)過程中常常被使用,是一種理想的數(shù)據(jù)交換語言。在使用Java做Web開發(fā)時,不可避免的會遇到Json的使用。下面我們就簡單講一下Json的使用以及fastjson.jar包的使用。

一:JSON形式與語法

1.1:JSON對象

我們先來看以下數(shù)據(jù):

{
	"ID": 1001,
	"name": "張三",
	"age": 24
}

第一個數(shù)據(jù)就是一個Json對象,觀察它的數(shù)據(jù)形式,可以得出以下語法:

1:數(shù)據(jù)在花括號中

2:數(shù)據(jù)以"鍵:值"對的形式出現(xiàn)(其中鍵多以字符串形式出現(xiàn),值可取字符串,數(shù)值,甚至其他json對象)

3:每兩個"鍵:值"對以逗號分隔(最后一個"鍵:值"對省略逗號)

遵守上面3點(diǎn),便可以形成一個json對象。

1.2:JSON對象數(shù)組

接下來我們再看第二個數(shù)據(jù),觀察它的數(shù)據(jù)形式,可以得出以下語法:

[
	{"ID": 1001, "name": "張三", "age": 24},
	{"ID": 1002, "name": "李四", "age": 25},
	{"ID": 1003, "name": "王五", "age": 22}

]

1:數(shù)據(jù)在方括號中(可理解為數(shù)組)

2:方括號中每個數(shù)據(jù)以json對象形式出現(xiàn)

3:每兩個數(shù)據(jù)以逗號分隔(最后一個無需逗號)

遵守上面3點(diǎn),便可形成一個json對象數(shù)組(及一個數(shù)組中,存儲了多個json對象)

理解了上面兩種基本的形式,我們就可以得出其他的數(shù)據(jù)形式,例如下面這個:

{
	"部門名稱":"研發(fā)部",
	"部門成員":[
	{"ID": 1001, "name": "張三", "age": 24},
	{"ID": 1002, "name": "李四", "age": 25},
	{"ID": 1003, "name": "王五", "age": 22}],
	"部門位置":"xx樓21號"
}

這是上面兩個基本形式結(jié)合出來的一種變形,通過這種變形,使得數(shù)據(jù)的封裝具有很大的靈活性,能讓開發(fā)者自由的發(fā)揮想象力。

1.3:JSON字符串

JSON字符串也是在平時開發(fā)中使用較多的,json字符串應(yīng)滿足以下條件:

1:它必須是一個字符串,由" "或者' '包裹數(shù)據(jù),支持字符串的各種操作

2:里面的數(shù)據(jù)格式應(yīng)該要滿足其中一個格式,可以是json對象,也可以是json對象數(shù)組或者是兩種基本形式的組合變形。

總結(jié):json可以簡單的分為基本形式:json對象,json對象數(shù)組。兩種基本格式組合變形出其他的形式,但其本質(zhì)還是json對象或者json對象數(shù)組中的一種。json對象或?qū)ο髷?shù)組可以轉(zhuǎn)化為json字符串,使用于不同的場合。

注意點(diǎn):在封裝json數(shù)據(jù)的時候,很容易出現(xiàn)錯誤,比如粗心的在最后一條數(shù)據(jù)的末尾加上了逗號等等,這里我提供一個在線驗證工具,方便大家驗證json數(shù)據(jù)格式的正確性

http://www.bejson.com/

二:fastjson介紹與使用

2.1:fastjson簡介與jar下載

fastjson.jar是阿里爸爸開發(fā)的一款專門用于Java開發(fā)的包,可以方便的實(shí)現(xiàn)json對象與JavaBean對象的轉(zhuǎn)換,實(shí)現(xiàn)JavaBean對象與json字符串的轉(zhuǎn)換,實(shí)現(xiàn)json對象與json字符串的轉(zhuǎn)換。除了這個fastjson以外,還有Google開發(fā)的Gson包,其他形式的如net.sf.json包,都可以實(shí)現(xiàn)json的轉(zhuǎn)換。方法名稱不同而已,最后的實(shí)現(xiàn)結(jié)果都是一樣的。

將json字符串轉(zhuǎn)化為json對象
在net.sf.json中是這么做的
JSONObject obj = new JSONObject().fromObject(jsonStr);//將json字符串轉(zhuǎn)換為json對象

在fastjson中是這么做的
JSONObject obj=JSON.parseObject(jsonStr);//將json字符串轉(zhuǎn)換為json對象

今天我們主要講fastjson的使用,首先應(yīng)該在Java工程中導(dǎo)入對應(yīng)的fastjson.jar包,

fastjson.jar包原始下載地址:https://github.com/alibaba/fastjson

點(diǎn)擊頁面中的download即可下載最新的包

Json的詳細(xì)介紹以及fastjson使用教程

至此,JSON類中的方法也講解的差不多了,下面給出Java實(shí)例來實(shí)現(xiàn)以上的各種轉(zhuǎn)換。

測試類:

package jsonTest;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;


public class MyJson {
	
	public static void main(String[] args) {
		
		List<Student> list=new ArrayList<>();
		Student student=new Student("bob",24);
		Student student12=new Student("lily", 23);
		list.add(student);
		list.add(student12);
		System.out.println("*******javaBean  to jsonString*******");
		String str1=JSON.toJSONString(student);
		System.out.println(str1);
		System.out.println(JSON.toJSONString(list));
		System.out.println();
		
		System.out.println("******jsonString to javaBean*******");
		//Student stu1=JSON.parseObject(str1,new TypeReference<Student>(){});
		Student stu1=JSON.parseObject(str1,Student.class);
		System.out.println(stu1);
		System.out.println();
		
		System.out.println("******javaBean to jsonObject******");
		JSONObject jsonObject1=(JSONObject)JSON.toJSON(student);
		System.out.println(jsonObject1.getString("name"));
		System.out.println();
		
		System.out.println("******jsonObject to javaBean******");
		Student student2=JSON.toJavaObject(jsonObject1, Student.class);
		System.out.println(student2);
		System.out.println();
		
		System.out.println("*******javaBean to jsonArray******");
		List<Student> stulist=new ArrayList<>();
		for(int i=0;i<5;i++){
			stulist.add(new Student("student"+i, i));
			
		}
		JSONArray jsonArrays=(JSONArray)JSON.toJSON(stulist);
		for(int i=0;i<jsonArrays.size();i++){
		System.out.println(jsonArrays.getJSONObject(i));
		}
		System.out.println();
		
		System.out.println("*****jsonArry to javalist******");
		List<Student> myList=new ArrayList<>();
		for(int i=0;i<jsonArrays.size();i++){
			
		Student student3=JSON.toJavaObject(jsonArrays.getJSONObject(i), Student.class);
			myList.add(student3);
		}
		for(Student stu:myList){
			System.out.println(stu);
		}
		
	        System.out.println();
		
		System.out.println("*****jsonObject to jsonString*****");
		String str4=JSON.toJSONString(jsonObject1);
		System.out.println(str4);
		System.out.println();
		
		System.out.println("*******jsonString to jsonObject*****");
		JSONObject jso1=JSON.parseObject(str1);
		System.out.println(jso1.getString("name"));
		System.out.println();
		
		System.out.println("*****jsonString to jsonArray*****");
		JSONArray jArray=JSON.parseArray(JSON.toJSONString(stulist));
		for(int i=0;i<jArray.size();i++){
		System.out.println(jArray.getJSONObject(i));
		}
		System.out.println();
	}

}

測試類對應(yīng)的javabean類:

package jsonTest;

public class Student {
	
	private String name;
	private int age;
	
	public Student() {
		// TODO Auto-generated constructor stub
	}
	
	public Student(String name,int age){
		this.name=name;
		this.age=age;
	}
	
	public void setName(String name){
		this.name=name;
		
	}
	
	public String getName(){
		return name;
	}
	
	public void setAge(int age){
		this.age=age;
	}
	
	public int getAge(){
		return age;
	}
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "student [name="+name+">

到此,關(guān)于“Json的詳細(xì)介紹以及fastjson使用教程”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

新聞名稱:Json的詳細(xì)介紹以及fastjson使用教程
文章分享:http://jinyejixie.com/article18/posggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站改版企業(yè)網(wǎng)站制作、做網(wǎng)站、用戶體驗、建站公司

廣告

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

外貿(mào)網(wǎng)站制作
赤峰市| 和林格尔县| 永仁县| 依安县| 太原市| 宝应县| 兴安县| 通榆县| 永春县| 长沙市| 海林市| 尤溪县| 济南市| 鹤岗市| 平阳县| 青铜峡市| 江源县| 锡林浩特市| 扶风县| 杭锦旗| 额敏县| 泸州市| 南投县| 仙居县| 河北省| 江陵县| 虎林市| 鹤山市| 福海县| 双辽市| 台江县| 张北县| 如东县| 仙桃市| 巨鹿县| 邹城市| 施秉县| 米易县| 汾西县| 通辽市| 元氏县|