本篇內容介紹了“怎么使用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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。