日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀] 1.一般我們?cè)谶M(jìn)行客戶端和服務(wù)端交換數(shù)據(jù)的時(shí)候,會(huì)使用Json來(lái)進(jìn)行數(shù)據(jù)的傳輸,即轉(zhuǎn)換成字符串類型的json數(shù)據(jù)來(lái)進(jìn)行數(shù)據(jù)的交換。 2.Json類型的數(shù)據(jù)一般是 JSONObject

1.一般我們?cè)谶M(jìn)行客戶端和服務(wù)端交換數(shù)據(jù)的時(shí)候,會(huì)使用Json來(lái)進(jìn)行數(shù)據(jù)的傳輸,即轉(zhuǎn)換成字符串類型的json數(shù)據(jù)來(lái)進(jìn)行數(shù)據(jù)的交換。

2.Json類型的數(shù)據(jù)一般是 JSONObject(對(duì)象),JSONArray(數(shù)組)。一般來(lái)說(shuō)二組的區(qū)別在于,對(duì)象是無(wú)序的,而數(shù)組是有序的,看具體需求選擇使用。

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

/**
 * 使用的是json-lib-2.4.jar
 * @author yes
 *
 */


public class TestJson {
    public static void main(String[] args) throws Exception {   
          //定義一個(gè)json對(duì)象
           JSONObject jo = new JSONObject();
           jo.put("id", "1");
           jo.put("name", "yang");
           jo.put("age", "13");

           //定義一個(gè)Json數(shù)組
           JSONArray ja = new JSONArray();
           ja.add(0, "yang");
           ja.add(1,"li");
           ja.add(2, "zhang");

           System.out.println("json對(duì)象的格式:"+jo);
           System.out.println("json數(shù)組的格式:"+ja);

           //使用類自帶的方法來(lái)轉(zhuǎn)換成String類型
           String str_ = jo.toJSONString();
           String strs_ = ja.toJSONString();

           System.out.println("json對(duì)象-->String"+str_);
           System.out.println("json數(shù)組-->String"+strs_);
    }       
}

執(zhí)行結(jié)果:
json對(duì)象的格式:{"id":"1","age":"13","name":"yang"}
json數(shù)組的格式:["yang","li","zhang"]
json對(duì)象-->String{"id":"1","age":"13","name":"yang"}
json數(shù)組-->String["yang","li","zhang"]
12345678910111213141516171819202122232425262728293031323334353637383940411234567891011121314151617181920212223242526272829303132333435363738394041

3.Json在數(shù)據(jù)傳輸中的使用

a.將各種類型裝換成Json類型字符串
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test03 {
    public static void main(String[] args) {        
    //創(chuàng)建一個(gè)User對(duì)象(name,age,id)
        User user = new User();
        user.setAge(22);
        user.setName("張三");
        user.setId(33);

        List li = new ArrayList();  
        //創(chuàng)建一個(gè)Map,放入三組值
    Map hashMap = new HashMap();
           hashMap.put("name", "ZHULI");
           hashMap.put("age", "30");
           hashMap.put("id", "4");

         //向List中放入數(shù)據(jù)   
            li.add(0, "123");
            li.add(1,"444");  
            li.add(hashMap); 

        //將List,Map,Bean---->json類型字符串  
            String stra = GsonUtil.GsonString(user);
            String strb = GsonUtil.GsonString(hashMap);
            String strc = GsonUtil.GsonString(li);

            System.out.println("Bean-->String結(jié)果:"+stra);
            System.out.println("Map-->String結(jié)果:"+strb);
            System.out.println("List-->String結(jié)果"+strc);

    }
}
執(zhí)行結(jié)果:
Bean-->String結(jié)果:{"name":"張三","age":22,"id":33}
Map-->String結(jié)果:{"id":"4","age":"30","name":"ZHULI"}
List-->String結(jié)果["123","444,{"id":"4","age":"30","name":"ZHULI"}]
1234567891011121314151617181920212223242526272829303132333435363738394012345678910111213141516171819202122232425262728293031323334353637383940
b.將各種類型的json類型字符串解析出來(lái)
//1.將JsonArray類型字符串轉(zhuǎn)換成Bean或list

import java.util.List;
import Socket.User;

public class Test02 {

public static void main(String[] args) {
    //定義一個(gè)jsonArrayString
    String json = "[{'name':'yang','id':'1','age':'18'},"
            + "{'name':'zhang','id':'2','age':'13'}]";

    //jsonString轉(zhuǎn)list,User類自己創(chuàng)建,三個(gè)屬性
    List li = GsonUtil.jsonArrayToList(json,User.class);
    for(User user : li){
        String name = user.getName();
        Integer id = user.getId();
        Integer age = user.getAge();
        System.out.println("學(xué)生的姓名是:"+name+"  "+"ID是:"+id+"  "+"年齡是:"+age);
    }   
  }
}

執(zhí)行結(jié)果:
學(xué)生的姓名是:yang  ID是:1  年齡是:18
學(xué)生的姓名是:zhang  ID是:2  年齡是:13
123456789101112131415161718192021222324252627123456789101112131415161718192021222324252627
將JsonArray類型字符串轉(zhuǎn)換成List中包含map的
import java.util.List;
import java.util.Map;

public class Test05 {
    public static void main(String[] args) {

        String json = "['123','444',{'id':'4','age':'30','name':'ZHULI'}]";

        //list中含有Map但不全是Map
        List li = GsonUtil.GsonToListMap(json);
        Map m  =(Map) li.get(2);        
        System.out.println(m.get("age"));

    }
}
//如果list中全部是Map類型的數(shù)據(jù),使用GsonToListMap();方法
執(zhí)行結(jié)果:
30
123
1234567891011121314151617181912345678910111213141516171819
c.實(shí)用性比較高的,復(fù)雜的數(shù)據(jù)轉(zhuǎn)化成Bean進(jìn)行操作
//先貼出學(xué)生類
package TestJson;

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

public class Student {
    private String id;
    private String nickName;
    private String email;
    private String age;
    private List books = new ArrayList();
    private  HashMap booksMap = new HashMap();
    //獲取set,get方法
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getNickName() {
        return nickName;
    }
    public void setNickName(String nickName) {
        this.nickName = nickName;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public List getBooks() {
        return books;
    }
    public void setBooks(List books) {
        this.books = books;
    }
    public HashMap getBooksMap() {
        return booksMap;
    }
    public void setBooksMap(HashMap booksMap) {
        this.booksMap = booksMap;
    }  

}
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152531234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
//測(cè)試代碼
package TestJson;

public class Test05 {
    public static void main(String[] args) {
    //定義一個(gè)包含list,map類型的字符串
        String json = "{'books':['數(shù)學(xué)','語(yǔ)文','英語(yǔ)','物理','化學(xué)','生物'],'booksMap':{'3':'英語(yǔ)','2':'語(yǔ)文','1':'數(shù)學(xué)','6':'生物','5':'化學(xué)','4':'物理'},'email':'965266509@qq.com','nickName':'小明','id':'1','age':'22'}";  
    //轉(zhuǎn)化成Bean   
    Student su = GsonUtil.GsonToBean(json, Student.class);
    System.out.println("學(xué)生的姓名是:"+su.getNickName());
    System.out.println("學(xué)生學(xué)習(xí)的第一門課:"+su.getBooks().get(0));
    System.out.println("序號(hào)3課程是:"+su.getBooksMap().get("3"));
    }
}

執(zhí)行結(jié)果:
學(xué)生的姓名是:小明
學(xué)生學(xué)習(xí)的第一門課:數(shù)學(xué)
序號(hào)3對(duì)應(yīng)的課程是:英語(yǔ)
1234567891011121314151617181912345678910111213141516171819

5.將基本的轉(zhuǎn)化實(shí)現(xiàn)放到了一個(gè)工具類中。GsonUtil.Java

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

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;

/**
 * 使用gson來(lái)操作Json
 * 1.對(duì)象實(shí)體類,list,map,等轉(zhuǎn)化成----->jsonString(進(jìn)行數(shù)據(jù)傳遞)
 * 2.jsonString轉(zhuǎn)化成----->對(duì)象實(shí)體類,list,map(解析返回的數(shù)據(jù))
 * 3.我使用的是gson-2.2.2.jar
 * @author yes
 *
 */

public class GsonUtil {


private static Gson gson = null;
    static {
        if (gson == null) {
            gson = new Gson();
        }
    }


    /**
     * 將object對(duì)象轉(zhuǎn)成json字符串(jsonString)
     * boject 可以是List,也可以是Bean(對(duì)象類型)
     * @param object
     */
    public static String GsonString(Object object) {
        String gsonString = null;
        if (gson != null) {
            gsonString = gson.toJson(object);
        }
        return gsonString;
    }


    /**入?yún)⑹莏son對(duì)象
     * 將gsonObjectString轉(zhuǎn)成泛型bean(實(shí)體類)
     * @param gsonString
     */
    public static  T GsonToBean(String gsonString, Class cls) {
        T t = null;
        if (gson != null) {
            t = gson.fromJson(gsonString, cls);
        }
        return t;
    }

    /**
     * 這里的入?yún)⑹莏son數(shù)組類型的字符串
     * jsonArrayString轉(zhuǎn)成list
     */
    public static  List jsonArrayToList(String json, Class cls) {
        Gson gson = new Gson();
        List list = new ArrayList();
        JsonArray array = new JsonParser().parse(json).getAsJsonArray();
        for(final JsonElement elem : array){
            list.add(gson.fromJson(elem, cls));
        }
        return list;
    }



    /**
     * List對(duì)泛型沒(méi)有要求
     * jsonString轉(zhuǎn)成list中有map的
     */
    public static  List> GsonToListMap(String gsonString) {
        List list = null;
        if (gson != null) {
            list = gson.fromJson(gsonString,
                    new TypeToken() {
                    }.getType());
        }
        return list;
    }

    /**
     * 要求List中全部是Map
     * jsonString轉(zhuǎn)成list中有map的
     */
    public static  List> GsonToListMaps(String gsonString) {
        List> list = null;
        if (gson != null) {
            list = gson.fromJson(gsonString,
                    new TypeToken>>() {
                    }.getType());
        }
        return list;
    }


    /**
     * jsonString轉(zhuǎn)成map的
     */
    public static  Map GsonToMaps(String gsonString) {
        Map map = null;
        if (gson != null) {
            map = gson.fromJson(gsonString, new TypeToken>() {
            }.getType());
        }
        return map;
    }

    /**
     * map轉(zhuǎn)jsonString,指定了Map類型
     */
    public static String MapToJson(Map map){
        String str = null;
        if(gson != null){
            str = gson.toJson(map);
        }
        return str;
    }    
}
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124

6.差不多在項(xiàng)目中的使用可以實(shí)現(xiàn)了,這里我從開(kāi)始不懂到自己敲出來(lái),也是參考了很多博客前輩的知識(shí)講解。在學(xué)習(xí)中進(jìn)步。








本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉