Can not deserialize instance of java.lang.Integer out of START_OBJECT token 錯誤解決
阿新 • • 發佈:2019-01-01
今天在跟前端聯調一個新的接囗時遇到這個錯誤,錯誤程式碼
1.POST請求中content的值必須為json格式(儲存形式可以是字串,也可以是byte陣列);
[email protected]註解的引數型別必須是完全可以接收引數值的型別,比如:Map,JSONObject,或者對應的JavaBean;
所以Integer型別不能作為@RequestBody註解的引數型別,將上述程式碼修改如下(前端改成get請求)即可:
下面總結下我所在做專案常用接囗格式:
因為@RequestBody是將post請求中content值轉為一個整體物件。@RequestBody的解析有兩個條件:/** * 掃描車牌號碼得到車輛資訊 * @param plateId * @return */ @RequestMapping(value = "scanPlateNumber") @ResponseBody public ResponseResult scanPlateNumber(@RequestBody Integer plateId) { VehicleEntity vehicleEntity; try{ logger.info("批次發貨--新增車牌id:"+plateId);
1.POST請求中content的值必須為json格式(儲存形式可以是字串,也可以是byte陣列);
[email protected]註解的引數型別必須是完全可以接收引數值的型別,比如:Map,JSONObject,或者對應的JavaBean;
所以Integer型別不能作為@RequestBody註解的引數型別,將上述程式碼修改如下(前端改成get請求)即可:
/** * 掃描車牌號碼得到車輛資訊 * @param plateId * @return */ @RequestMapping(value = "scanPlateNumber") @ResponseBody public ResponseResult scanPlateNumber(@RequestParam Integer plateId) { VehicleEntity vehicleEntity; try{ logger.info("批次發貨--新增車牌id:"+plateId); vehicleEntity = vehicleDAO.findVehicleById(plateId);
下面總結下我所在做專案常用接囗格式:
1.post請求,引數通常為一個javaBean
2.get請求/** * 包裹發貨(中心倉) * @param orderPackageDeliveryParam * @return */ @RequestMapping("deliveryOrderPackage") @ResponseBody public ResponseResult deliveryOrderPackage(@RequestBody OrderPackageDeliveryParam orderPackageDeliveryParam) { try { List<OrderPackageDeliveryVo> orderPackageAllEntityList = orderPackageDeliveryParam.getOrderPackageDeliveryVo();
a.引數放在url裡(舊的接囗常用)
/**
* 掃描倉位碼得到倉位資訊
* @param cityId
* @return
*/
@RequestMapping(value = "scanWarehousePositionCode/{cityId}")
@ResponseBody
public ResponseResult scanWarehousePositionCode(@PathVariable("cityId") Long cityId) {
TimeAddressEntity timeAddressEntity;
try {
timeAddressEntity = timeAddressService.findTimeAddressWarehouseById(cityId);
b.引數放在url後
/**
* 掃描車牌號碼得到車輛資訊
* @param plateId
* @return
*/
@RequestMapping(value = "scanPlateNumber")
@ResponseBody
public ResponseResult scanPlateNumber(@RequestParam Integer plateId) {
VehicleEntity vehicleEntity;
try{
logger.info("批次發貨--新增車牌id:"+plateId);
vehicleEntity = vehicleDAO.findVehicleById(plateId);