溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用fastjson

發(fā)布時間:2021-11-15 11:57:14 來源:億速云 閱讀:157 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“怎么使用fastjson”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

JSONObject的方法

包名: com.alibaba.fastjson maven依賴:

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.7</version>
</dependency>

JSONObject的使用

將字符串轉(zhuǎn)換成JSONObject對象

	String str = "{\"desc\":\"json格式的字符串\",\"sex\":\"男\(zhòng)"}";
	JSONObject jo = JSONObject.parseObject(str);

JSONObject可以將極其復(fù)雜的json對象轉(zhuǎn)換,下面的json語句也可以轉(zhuǎn)換,并通過相應(yīng)方法獲得對應(yīng)的值

{
    "protocol":{
        "itemID":"9527",
        "companyID":"4399",
        "userID":"233"
    },
    "operateInfo":{
        "cooptaskSceneDataPackets":[
            {
                "taskID":"123",
                "runSceneID":"345",
                "dataTagCode":"反對",
                "dataTagID":"",
                "dataTagName":"是的",
                "dataTagBelongOrg":""
            },
            {
                "taskID":"126",
                "runSceneID":"345",
                "dataTagCode":"",
                "dataTagID":"",
                "dataTagName":"是的",
                "dataTagBelongOrg":""
            },
            {
                "taskID":"123",
                "runSceneID":"345",
                "dataTagCode":"無法",
                "dataTagID":"十五日",
                "dataTagName":"是的",
                "dataTagBelongOrg":"五七二"
            },
            {
                "taskID":"124",
                "runSceneID":"235",
                "dataTagCode":"",
                "dataTagID":"",
                "dataTagName":"",
                "dataTagBelongOrg":""
            }
        ]
    }
}

將String對象轉(zhuǎn)換成實體類

使用JSONObject.parseObject(String text, Class<T> clazz)

	String str ="{\"itemID\":\"9527\",\"companyID\":\"4399\",\"userID\":\"233\"}";
	EntityProtocol entityProtocol = JSONObject.parseObject(str, EntityProtocol.class);

如果類型不匹配則會創(chuàng)建所有屬性均為null的該實體類。

向JSONObject對象添加或者修改屬性

使用.put(key,value)方法
若key參數(shù)在原對象中沒有則在原對象中新增key屬性并賦值為value;
若key參數(shù)存在則更改key的值為value;

	//JSONObject.put(String key,Object value);
	jo.put("key","value");
	jo.put("sex","修改");

JSONObject.putAll(Map<? extends String, ? extends Object> m) 方法的使用

經(jīng)測試發(fā)現(xiàn)參數(shù)可以為JSONOBject,其邏輯為將參數(shù)json的屬性及其值依次put到原json對象中

	 String str = "{\"name\":\"測試\",\"sex\":\"男\(zhòng)"}";
	 JSONObject jo = JSONObject.parseObject(str);
	 String str2 = "{\"name\":\"我是\",\"age\":\"13\"}";
	 JSONObject jo2 = JSONObject.parseObject(str2);
	 jo.putAll(jo2);
	 //運行完成后jo為:
	 //{"sex":"男","name":"我是","age":"13"}

JSONArray的使用

JSONArray對象添加元素

使用JSONArray.add(Object e)
只是簡單的將元素e添加到JSONArray數(shù)組中,既不校驗e元素是否已存在于原數(shù)組中,也不校驗e元素是否跟元素組格式相同

	String str = "{\"name\":\"測試\",\"sex\":\"男\(zhòng)"}";
	JSONArray ja = new JSONArray();
	ja.add(str);
	JSONObject jo = JSONObject.parseObject("{\"name\":\"第二個\",\"age\":\"24\"}");
	ja.add(jo);
	System.out.println(ja);
	//結(jié)果為: ["{\"name\":\"測試\",\"sex\":\"男\(zhòng)"}",{"name":"第二個","age":"24"}]  
	JSONObject jo1 = JSONObject.parseObject(str);
	ja.add(jo1);
	System.out.println(ja);
	//結(jié)果為: ["{\"name\":\"測試\",\"sex\":\"男\(zhòng)"}",{"name":"第二個","age":"24"},{"sex":"男","name":"測試"}]

獲取JSONArray中某一元素

  • JSONArray.get(int index),JSONArray.getString(int index),JSONArray.getJSONObject(int index)
    這些方法運行正常

  • JSONArray.getByte(int index),JSONArray.getByteValue(int index)
    這些方法運行報錯,沒深究過為什么,估計是string不能轉(zhuǎn)換成byte類型

	 System.out.println(ja.get(1));
	System.out.println(ja.getString(1));
	System.out.println(ja.getJSONObject(1));
	//System.out.println(ja.getByte(1)); can not cast to byte, value
	//System.out.println(ja.getByteValue(1)); can not cast to byte, value

“怎么使用fastjson”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI