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 j


異常信息如下:

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對象,先看代碼:

  

三方服務:

    @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);
        }

 

 

我的代碼:

 
         
/**
* @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看看能否接收,並且接收到的是什么參數,然后再解析。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM