net.sf.json.JSONException: Object is null

出現這個錯誤的原因是net.sf.json.JSONArray或JSONObject轉換時,對象內包含另一個對象,而該被包含的對象爲NULL,所以拋出異常。一種解決辦法是將json字符串裏的null去掉,但是覺得有點繁瑣,之後看到可以用fastjson解決。

用fastjson處理之後的數據,其包含null的鍵值對是刪去了的。

fastjson的remove方法替換了net.sf.json的discard方法,通過輸出看到remove方法返回的好像是被移除的那個數據,但是將remove返回值放進組裏的時候,確實原數據移除對應數據後的值。。。

  for (int i = 0; i < sectionsArray.size(); i++) {
                JSONObject jsonObject = (JSONObject) sectionsArray.get(i);
                System.out.println("jsonObject: " + jsonObject);
                System.out.println("111:" + jsonObject.remove("contents") );
//               JSONObject jsonObject2 = (JSONObject) jsonObject.remove("contents");
//                JSONObject jsonObject2 = (JSONObject) jsonObject.discard("contents");
                jsonObject.remove("contents");
//                jsonArray1.add(jsonObject2);
                jsonArray1.add(jsonObject);

            }

 

令我奇怪的是我的後臺數據是這樣的(用json在線解析工具比較好看(

[{"數據結構簡介":[{"createUserId":37,"submitTime":1584147431000,"chapterId":1,"sectionsName":"數據結構簡介","id":1,"keyWord":"數據結構"},{"createUserId":0,"chapterId":1,"sectionsName":"數據結構算法","id":2,"keyWord":"數據結構算法"},{"createUserId":0,"chapterId":1,"sectionsName":"數據結構漸進分析","id":3,"keyWord":"時間複雜度"}]},{"數組":[{"createUserId":0,"chapterId":2,"sectionsName":"指針","id":4,"keyWord":"指針"},{"createUserId":0,"chapterId":2,"sectionsName":"結構體","id":5,"keyWord":"結構體"}]},{"鏈表":[]},{"堆棧":[]},{"隊列":[]},{"樹":[]},{"圖":[]},{"查找":[]},{"排序":[]}]

但是傳到前臺後,確是這樣的,多了序號作爲其key值,這樣子前端處理時就麻煩了很多。不知道有什麼解決辦法。

  1. 0: {數據結構簡介: Array(3)}
  2. 1: {數組: Array(2)}
  3. 2: {鏈表: Array(0)}
  4. 3: {堆棧: Array(0)}
  5. 4: {隊列: Array(0)}
  6. 5: {樹: Array(0)}
  7. 6: {圖: Array(0)}
  8. 7: {查找: Array(0)}
  9. 8: {排序: Array(0)}

 


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章