使用JSONObject不用建立一个全模型, 使用Gson()需要建立一个全模型来匹配返回的json数据。
fun getOwnLinenStockInHotel(CUST_DEPT_CODE: String): ApiResponse<StockOfSendHotelResp2?> {
var params = mutableMapOf<String, String>()
params["CUST_DEPT_CODE"] = CUST_DEPT_CODE
val res = PuruiHttpUtils.get(
api = "SendingWash/GetEPC_Position",
params = params,
needCached = false
)
when (res.code) {
200 -> {
val jsonObject = JSONObject(res.body ?: "")
val code = jsonObject.optInt("code", -1)
val data = jsonObject.optJSONObject("data")
val msg = jsonObject.optString("msg", "")
if (code == 200) {
val account_mstrmod = data?.optJSONObject("account_mstrmod")
val resultList = StockOfSendHotelResp2(
epcs = arrayListOf(),
count = 0, account_mstrmod = SendHotelReceiveConfig(
SX_RECE_COUNT_SET = account_mstrmod?.optInt("SX_RECE_COUNT_SET")?:0,
SX_RECE_COUNT_TEXT = account_mstrmod?.optString("SX_RECE_SEND_TEXT")?:"",
SX_RECE_SEND_SET = account_mstrmod?.optInt("SX_RECE_SEND_SET")?:0,
SX_RECE_SEND_TEXT = account_mstrmod?.optString("SX_RECE_SEND_TEXT")?:"")
)
val epcs = data?.optJSONObject("epcs")
val goodIDs = epcs?.keys()
goodIDs?.let {
for (goodId in goodIDs) {
val epcIds = epcs.optJSONArray(goodId)
epcIds?.let {
for (idx in 0 until epcIds.length()) {
val epcId = epcIds.getString(idx)
resultList.epcs?.add(
PhoneApp_GetEPC_PositionResp(
goodId = goodId,
epcId = epcId
)
)
}
}
}
}
return PuruiHttpUtils.handleError(code = code, msg = msg, data = resultList)
} else {
return PuruiHttpUtils.handleError(
code = code,
msg = msg.ifBlank { res.body ?: "" },
data = null
)
}
}
/* 200->{
val gson=Gson()
kotlin.runCatching {
return gson.fromJson(res.body,object : TypeToken<ApiResponse<StockOfSendHotelResp?>>() {}.type) as ApiResponse<StockOfSendHotelResp?>
}.onFailure {
return PuruiHttpUtils.handleError(code= PuruiApiImpl.parseErrorCode,msg="${it.message}",data=null)
}
}*/else -> {
PuruiHttpUtils.handleError(code = res.code, msg = res.error, data = null)
}
}
return PuruiHttpUtils.handleError(code = res.code, msg = res.error, data = null)
}