JSON parse error: Can not deserialize instance of java.lang.String out of START_OBJECT token; nes...

异常信息以下:java

JSON parse error: 
Can not deserialize instance of java.lang.String out of START_OBJECT token;
nested exception is com.fasterxml.jackson.databind.JsonMappingException:
Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: java.io.PushbackInputStream@7d1ef454; line: 1, column: 39]
(through reference chain: com.chehejia.aisp.core.result.Result["data"])

 

  我本身的服务去调用别人的服务的时候出现的异常,意思是JSON解析失败,用String类型没法序列化Json对象,先看代码:app

  

三方服务:spa

@ApiOperation("下订单") @PostMapping("/orders") @ApiResponses({ @ApiResponse(code = MusicCode.MUSIC_VIP_PRODUCT_NOT_EXIST_CODE, message = MusicCode.MUSIC_VIP_PRODUCT_NOT_EXIST_DESC), @ApiResponse(code = MusicCode.MUSIC_VIP_ORDER_CODE_IS_REPEAT_CODE, message = MusicCode.MUSIC_VIP_ORDER_CODE_IS_REPEAT_DESC)} ) public Result<String> addOrders(@Valid @RequestBody OrderForm form) { VipProduct vipProduct = vipService.getVipProductByProdCode(form.getProdCode()); if(vipProduct==null){ return Results.failure(MusicCode.MUSIC_VIP_PRODUCT_NOT_EXIST); }

 

 

个人代码:code

 
  
/**
* @Author: 保密哈哈
* @Description:
* @Date: 2019/6/4 15:40
* @Modified By:
*/
@FeignClient("保密-保密-hmi")
public interface CompensationOrderService {
/** * 音乐服务下单 * @param form * @return
     */ @PostMapping(value = "/保密/保密/保密/orders") @ResponseBody Result<String> addOrders(@Valid @RequestBody OrderForm form, @RequestHeader(value = "保密-Token")String token, @RequestHeader(value = "X-保密-Deviceid")String deviceid);

 

由于我是经过Fegin调用另外一方服务,由于另外一个服务调用的接口的返回参数是 Result<String>,因此,我保持了个人接收参数是 Result<String>,  我天真的认为只要彻底保持一致就能够,其实是不行的,传过来的是个Json,因此String是没法解析的,除非是JSon形式的字符串,可行的方法是先用超类Object看看可否接收,而且接收到的是什么参数,而后再解析。orm

相关文章
相关标签/搜索