最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決從Map、JSONObject取不存在鍵值對(duì)時(shí)的異常情況

 更新時(shí)間:2022年07月06日 10:33:22   作者:koushr  
這篇文章主要介紹了解決從Map、JSONObject取不存在鍵值對(duì)時(shí)的異常情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

從Map、JSONObject取不存在鍵值對(duì)時(shí)異常

1.在Map中取不存在的鍵值對(duì)時(shí)不會(huì)報(bào)異常

只會(huì)返回null

@Test
?? ?public void testMap() {
?? ??? ?Map<String, Object> map = new HashMap<String, Object>();
?? ??? ?map.put("d", 10);
?? ??? ?Object b = map.get("c");
?? ??? ?System.out.println(b);
?? ?}
//打印結(jié)果是:null。

結(jié)論:從map中取出不存在的鍵值對(duì)時(shí)不會(huì)報(bào)異常,會(huì)返回null。

2.在JSONObject中取不存在的鍵值對(duì)時(shí)分兩種情況

利用jSONObject.get(Object key)方法及get(String key)取不存在的鍵值對(duì)時(shí)不會(huì)報(bào)異常,會(huì)返回null;但是利用jSONObject.getxxx(String key)方法取時(shí)會(huì)報(bào)空指針異常:

@Test
?? ?public void testJSONObject() {
?? ??? ?Map<String, Object> map = new HashMap<String, Object>();
?? ??? ?map.put("d", 10);
?? ??? ?JSONObject jSONObject = JSONObject.fromObject(map);
?? ??? ?int xx = jSONObject.getInt("d");
?? ??? ?System.out.println(xx);
?? ??? ?// 從jSONObject中用get(Object key)方法取出不存在的鍵值對(duì)時(shí)不會(huì)報(bào)異常,會(huì)返回null
?? ??? ?Object y = jSONObject.get("dd");
?? ??? ?System.out.println(y);
?? ??? ?// 從jSONObject中用getxxx(String key)方法取出不存在的鍵值對(duì)時(shí)報(bào)異常
?? ??? ?String y2 = jSONObject.getString("dd");
?? ??? ?System.out.println(y2);
?? ?}

對(duì)null處理時(shí)會(huì)報(bào)空指針異常:

@Test
?? ?public void testNull() {
?? ??? ?Object o = null;
?? ??? ?System.out.println(o);
?? ??? ?String s = (String) o;
?? ??? ?System.out.println(s);
?? ??? ?// System.out.println(s.getClass());
?? ??? ?User u = (User) o;
?? ??? ?System.out.println(u);
?? ??? ?// System.out.println(u.getClass());
?? ?}
//打印結(jié)果:
//null
//null
//null

分析可知:不管null是何種類型,Object null或者String null或者其他類型的null,調(diào)用getClass()方法時(shí)都會(huì)報(bào)空指針異常。

如果是Object null,則可以轉(zhuǎn)為其他類型的null,因?yàn)槠渌愋投际荗bject的子類。

但是其他類型的null不能隨便轉(zhuǎn)類型,除非是有父子關(guān)系的類型。

例如,如果String類型的想轉(zhuǎn)為User類型的,就會(huì)有編譯錯(cuò)誤,說Cannot cast from String to User。

遍歷JSONObject獲取鍵值對(duì)

看代碼時(shí)遇到的,遍歷JSONObject,獲取鍵值對(duì)

Map<String, String> map = new HashMap<>();
JSONObject jsonObject = new JSONObject(jsonStr);//字符串轉(zhuǎn)換成JSONObject
//jsonStr,例如:"{\"key\":\"value\",\"key1\":\"value1\"}"
Iterator<String> keys = jsonObject.keys();
while(keys.hasNext) {
?? ?String key = keys.next();//獲取key
?? ?String value = jsonObject.getString(key);//獲取value
?? ?map.put(key, value);
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java截取中英文混合字符串的方法

    Java截取中英文混合字符串的方法

    這篇文章主要為大家詳細(xì)介紹了Java截取中英文混合字符串的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 用C和JAVA分別創(chuàng)建鏈表的實(shí)例

    用C和JAVA分別創(chuàng)建鏈表的實(shí)例

    使用用C和JAVA分別創(chuàng)建鏈表的方法,創(chuàng)建鏈表、往鏈表中插入數(shù)據(jù)、刪除數(shù)據(jù)等操作。
    2013-10-10
  • 分享幾個(gè)寫簡(jiǎn)潔java代碼的小技巧

    分享幾個(gè)寫簡(jiǎn)潔java代碼的小技巧

    成為一個(gè)優(yōu)秀的Java程序員,有著良好的代碼編寫習(xí)慣是必不可少的,下面這篇文章主要給大家介紹了關(guān)于寫java代碼的小技巧,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • Java多線程實(shí)現(xiàn)簡(jiǎn)易微信發(fā)紅包的方法實(shí)例

    Java多線程實(shí)現(xiàn)簡(jiǎn)易微信發(fā)紅包的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Java多線程實(shí)現(xiàn)簡(jiǎn)易微信發(fā)紅包的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Spring?MVC中JSON數(shù)據(jù)處理方式實(shí)戰(zhàn)案例

    Spring?MVC中JSON數(shù)據(jù)處理方式實(shí)戰(zhàn)案例

    Spring MVC是個(gè)靈活的框架,返回JSON數(shù)據(jù)的也有很多五花八門的方式,下面這篇文章主要給大家介紹了關(guān)于Spring?MVC中JSON數(shù)據(jù)處理方式的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • springboot配置logback日志管理過程詳解

    springboot配置logback日志管理過程詳解

    這篇文章主要介紹了springboot配置logback日志管理過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Spring Aop組成部分及實(shí)現(xiàn)步驟

    Spring Aop組成部分及實(shí)現(xiàn)步驟

    面向切面編程,是對(duì)面向?qū)ο缶幊痰囊环N補(bǔ)充,是一種編程思想,是對(duì)某一類的事情的集中處理,這篇文章主要介紹了Spring Aop組成部分及實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2023-08-08
  • Springboot之@Async不執(zhí)行原因及分析

    Springboot之@Async不執(zhí)行原因及分析

    這篇文章主要介紹了Springboot之@Async不執(zhí)行原因及分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Springboot?手動(dòng)分頁查詢分批批量插入數(shù)據(jù)的實(shí)現(xiàn)流程

    Springboot?手動(dòng)分頁查詢分批批量插入數(shù)據(jù)的實(shí)現(xiàn)流程

    這篇文章主要介紹了Springboot?手動(dòng)分頁查詢分批批量插入數(shù)據(jù)的實(shí)現(xiàn)流程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • mybatis in查詢傳入String方式

    mybatis in查詢傳入String方式

    這篇文章主要介紹了mybatis in查詢傳入String方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評(píng)論

湘西| 巨野县| 尚志市| 嘉黎县| 通化市| 潍坊市| 宿迁市| 建平县| 镇江市| 舞阳县| 集安市| 兴山县| 忻州市| 嘉黎县| 通化市| 平和县| 通辽市| 汉源县| 尉氏县| 黔南| 唐山市| 中宁县| 岐山县| 九江县| 桦川县| 霞浦县| 麦盖提县| 新绛县| 红河县| 泰和县| 余姚市| 罗江县| 汕尾市| 东阿县| 桑日县| 中方县| 渭南市| 禄丰县| 贞丰县| 鄄城县| 樟树市|