JSON parse error: Can not deserialize instance of java.lang.String out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonM
程序员文章站
2023-01-01 09:44:28
异常信息如下: 我自己的服务去调用别人的服务的时候出现的异常,意思是JSON解析失败,用String类型无法序列化Json对象,先看代码: 三方服务: 我的代码: 因为我是通过Fegin调用另一方服务,因为另一个服务调用的接口的返回参数是 Result,所以,我保持了我的接收参数是 ......
异常信息如下:
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看看能否接收,并且接收到的是什么参数,然后再解析。
推荐阅读
-
JSON parse error: Can not deserialize instance of java.lang.String out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonM
-
JSON parse error: Can not deserialize instance of java.lang.String out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonM