六、處理JSON解析value為null、key為null的方法

問題1:

問題:JSON字符串轉(zhuǎn)換成JSONObject的時候 ,會有數(shù)據(jù)精度的問題,這種情況我們怎么解決呢?
處理方案:我們一般都會通過fastjson來解決這個問題。

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.24</version>
    </dependency>
問題2:

問題:fastjson在解析字符串時如果某個字段的值為null,則實際解析不會展示為null的字段和值,這個時候我們怎么去設(shè)置斷言?
處理方案:可以直接通過要取值的字段取值,結(jié)果會返回為null

演示代碼:

      String body_bvt1 = "{\"reconDate\":\"2022-08-17\",\"a\":{\"page\":null},\"pageSize\":300}";
      JSONObject bs = JSON.parseObject(body_bvt1);
      System.out.println(bs.getJSONObject("a").getString("page"));

返回結(jié)果:
   null
問題3

當字段不存在時,通過json取值fastjson也會返回null,這樣我們就沒辦法區(qū)分問題2中字段值為null而非字段不存在的情況,這個時候我們怎么去處理?

演示代碼: - 字段存在的情況
        String body_bvt1 = "{\"reconDate\":\"2022-08-17\",\"a\":{\"page\":null},\"pageSize\":300}";
        JSONObject bs = JSON.parseObject(body_bvt1);
        System.out.println(bs.getJSONObject("a").containsKey("page"));
返回結(jié)果:
       true
演示代碼: - 字段不存在的情況
        String body_bvt1 = "{\"reconDate\":\"2022-08-17\",\"a\":"o",\"pageSize\":300}";
        JSONObject bs = JSON.parseObject(body_bvt1);
        System.out.println(bs.getJSONObject("a").containsKey("page"));
返回結(jié)果:
       false

這樣我們就可以通過containsKey關(guān)鍵字,完成對字段是否存在的判斷。

補充的知識:

JsonObject本身集成了Map方法,如下為JsonObject源碼的一段內(nèi)容:
jsonobject源碼.png
我們可以看到其實就是用了map的 containskey關(guān)鍵字。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、 主流解析方式對比 解析方式使用難度原理優(yōu)點缺點適用場景Android原生復(fù)雜基于文檔驅(qū)動不依賴第三方庫;處理...
    Tom的簡書閱讀 1,290評論 0 2
  • 前端調(diào)用API的時候大多數(shù)都是使用json作為數(shù)據(jù)的返回格式,json也可以作為一種格式來進行數(shù)據(jù)存儲,也給我們提...
    不知名的蛋撻閱讀 5,929評論 0 1
  • 1、JSON簡介 json(JavaScript Object Notation),JavaScript對象表示法...
    藍色調(diào)調(diào)閱讀 531評論 0 0
  • android中網(wǎng)絡(luò)數(shù)據(jù)傳輸是經(jīng)常被用到的,通常我們使用xml或者json,而json更加輕量,便捷,我們使用的更...
    碼農(nóng)明明桑閱讀 2,822評論 3 22
  • Java中有很多方式可以解析Json字符串: FastJson庫阿里巴巴開源擅長解析建議JSON字符串數(shù)據(jù),而且是...
    Eqo閱讀 6,845評論 0 1

友情鏈接更多精彩內(nèi)容