1. 程式人生 > >json對空陣列的處理

json對空陣列的處理

背景:前段時間出差處理一個客戶的需求,其中有一項需要用到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":[]

,"version":"005.440.058"} 

導致原因:

(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轉換,發現最終得到了空陣列。