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