您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么使用fastjson”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
包名: com.alibaba.fastjson maven依賴:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency>
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":"" } ] } }
使用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的該實體類。
使用.put(key,value)方法
若key參數(shù)在原對象中沒有則在原對象中新增key屬性并賦值為value;
若key參數(shù)存在則更改key的值為value;
//JSONObject.put(String key,Object value); jo.put("key","value"); jo.put("sex","修改");
經(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.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.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ì)量的實用文章!
免責(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)容。