您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么使用fastjson”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
包名: com.alibaba.fastjson maven依賴:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency>
String str = "{\"desc\":\"json格式的字符串\",\"sex\":\"男\"}"; JSONObject jo = JSONObject.parseObject(str);
JSONObject可以將極其復雜的json對象轉換,下面的json語句也可以轉換,并通過相應方法獲得對應的值
{ "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);
如果類型不匹配則會創建所有屬性均為null的該實體類。
使用.put(key,value)方法
若key參數在原對象中沒有則在原對象中新增key屬性并賦值為value;
若key參數存在則更改key的值為value;
//JSONObject.put(String key,Object value); jo.put("key","value"); jo.put("sex","修改");
經測試發現參數可以為JSONOBject,其邏輯為將參數json的屬性及其值依次put到原json對象中
String str = "{\"name\":\"測試\",\"sex\":\"男\"}"; 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數組中,既不校驗e元素是否已存在于原數組中,也不校驗e元素是否跟元素組格式相同
String str = "{\"name\":\"測試\",\"sex\":\"男\"}"; JSONArray ja = new JSONArray(); ja.add(str); JSONObject jo = JSONObject.parseObject("{\"name\":\"第二個\",\"age\":\"24\"}"); ja.add(jo); System.out.println(ja); //結果為: ["{\"name\":\"測試\",\"sex\":\"男\"}",{"name":"第二個","age":"24"}] JSONObject jo1 = JSONObject.parseObject(str); ja.add(jo1); System.out.println(ja); //結果為: ["{\"name\":\"測試\",\"sex\":\"男\"}",{"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不能轉換成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”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。