json對空陣列的處理
阿新 • • 發佈:2018-12-21
背景:前段時間出差處理一個客戶的需求,其中有一項需要用到JSON處理。需求中的http請求引數關於裝置資訊(subDeviceData)要求傳空陣列。
json如下:
不符合要求json:{"ip":"10.10.15.130","mac":"08:A5:C8:00:00:16","refreshState":"0","refreshTime":"20181113115632","sn":"0010611611021100000008A5C8000016","subDeviceData":"","version":"005.440.058"}
符合要求json:{"ip":"10.10.15.130","mac":"08:A5:C8:00:00:16","refreshState":"0","refreshTime":"20181113115632","sn":"0010611611021100000008A5C8000016","subDeviceData":[]
導致原因:
(1)一開始的時候使用的org架包的json進行分裝
mDeviceInfo.setSubDeviceData(Collections.EMPTY_LIST);
org.json.JSONObject jsonObject = new JSONObject();
jsonObject.put(name, value);
儘管我已經將subDeviceData設定為空陣列了,但是分裝後得到的還是一個空的字串,這應該和org裡面的封裝有關係。
(2)後面經同事介紹採用google自帶的json處理即可
com.google.gson.Gson gson = new Gson(); tempValue = gson.toJson(mDeviceInfo);
其中DeviceInfo為實體類,將所有的資訊設定到實體類後,然後通過toJson函式進行json轉換,發現最終得到了空陣列。