這篇文章主要介紹“Json的詳細介紹以及fastjson使用教程”,在日常操作中,相信很多人在Json的詳細介紹以及fastjson使用教程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Json的詳細介紹以及fastjson使用教程”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
創(chuàng)新互聯(lián)建站成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術為基點,以客戶需求中心、市場為導向”的快速反應體系。對公司的主營項目,如中高端企業(yè)網站企劃 / 設計、行業(yè) / 企業(yè)門戶設計推廣、行業(yè)門戶平臺運營、成都app開發(fā)、手機網站開發(fā)、微信網站制作、軟件開發(fā)、棕樹數(shù)據中心等實行標準化操作,讓客戶可以直觀的預知到從創(chuàng)新互聯(lián)建站可以獲得的服務效果。
Json是一種輕量級的數(shù)據交換格式,采用一種“鍵:值”對的文本格式來存儲和表示數(shù)據,在系統(tǒng)交換數(shù)據過程中常常被使用,是一種理想的數(shù)據交換語言。在使用Java做Web開發(fā)時,不可避免的會遇到Json的使用。下面我們就簡單講一下Json的使用以及fastjson.jar包的使用。
我們先來看以下數(shù)據:
{ "ID": 1001, "name": "張三", "age": 24 }
第一個數(shù)據就是一個Json對象,觀察它的數(shù)據形式,可以得出以下語法:
1:數(shù)據在花括號中
2:數(shù)據以"鍵:值"對的形式出現(xiàn)(其中鍵多以字符串形式出現(xiàn),值可取字符串,數(shù)值,甚至其他json對象)
3:每兩個"鍵:值"對以逗號分隔(最后一個"鍵:值"對省略逗號)
遵守上面3點,便可以形成一個json對象。
接下來我們再看第二個數(shù)據,觀察它的數(shù)據形式,可以得出以下語法:
[ {"ID": 1001, "name": "張三", "age": 24}, {"ID": 1002, "name": "李四", "age": 25}, {"ID": 1003, "name": "王五", "age": 22} ]
1:數(shù)據在方括號中(可理解為數(shù)組)
2:方括號中每個數(shù)據以json對象形式出現(xiàn)
3:每兩個數(shù)據以逗號分隔(最后一個無需逗號)
遵守上面3點,便可形成一個json對象數(shù)組(及一個數(shù)組中,存儲了多個json對象)
理解了上面兩種基本的形式,我們就可以得出其他的數(shù)據形式,例如下面這個:
{ "部門名稱":"研發(fā)部", "部門成員":[ {"ID": 1001, "name": "張三", "age": 24}, {"ID": 1002, "name": "李四", "age": 25}, {"ID": 1003, "name": "王五", "age": 22}], "部門位置":"xx樓21號" }
這是上面兩個基本形式結合出來的一種變形,通過這種變形,使得數(shù)據的封裝具有很大的靈活性,能讓開發(fā)者自由的發(fā)揮想象力。
JSON字符串也是在平時開發(fā)中使用較多的,json字符串應滿足以下條件:
1:它必須是一個字符串,由" "或者' '包裹數(shù)據,支持字符串的各種操作
2:里面的數(shù)據格式應該要滿足其中一個格式,可以是json對象,也可以是json對象數(shù)組或者是兩種基本形式的組合變形。
總結:json可以簡單的分為基本形式:json對象,json對象數(shù)組。兩種基本格式組合變形出其他的形式,但其本質還是json對象或者json對象數(shù)組中的一種。json對象或對象數(shù)組可以轉化為json字符串,使用于不同的場合。
注意點:在封裝json數(shù)據的時候,很容易出現(xiàn)錯誤,比如粗心的在最后一條數(shù)據的末尾加上了逗號等等,這里我提供一個在線驗證工具,方便大家驗證json數(shù)據格式的正確性
http://www.bejson.com/
fastjson.jar是阿里爸爸開發(fā)的一款專門用于Java開發(fā)的包,可以方便的實現(xiàn)json對象與JavaBean對象的轉換,實現(xiàn)JavaBean對象與json字符串的轉換,實現(xiàn)json對象與json字符串的轉換。除了這個fastjson以外,還有Google開發(fā)的Gson包,其他形式的如net.sf.json包,都可以實現(xiàn)json的轉換。方法名稱不同而已,最后的實現(xiàn)結果都是一樣的。
將json字符串轉化為json對象 在net.sf.json中是這么做的 JSONObject obj = new JSONObject().fromObject(jsonStr);//將json字符串轉換為json對象 在fastjson中是這么做的 JSONObject obj=JSON.parseObject(jsonStr);//將json字符串轉換為json對象
今天我們主要講fastjson的使用,首先應該在Java工程中導入對應的fastjson.jar包,
fastjson.jar包原始下載地址:https://github.com/alibaba/fastjson
點擊頁面中的download即可下載最新的包
至此,JSON類中的方法也講解的差不多了,下面給出Java實例來實現(xià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) { Listlist=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 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 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 myList=new ArrayList<>(); for(int i=0;i 測試類對應的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+">到此,關于“Json的詳細介紹以及fastjson使用教程”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
當前題目:Json的詳細介紹以及fastjson使用教程
文章路徑:http://weahome.cn/article/posggp.html