繁体   English   中英

无法识别的令牌“付款”:期待(JSON 字符串、数字、数组、Object 或令牌“空”、“真”或“假”)

[英]Unrecognized token 'Payment': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')

我正在开发两个RestTemplate引导微服务(订单和支付)我收到上述错误:

这是我的代码

服务

public TransactionResponse saveOrder(TransactionRequest request) {
    String responseMessage = "";
    Order order = request.getOrder();
    Payment payment = request.getPayment();
    payment.setOrderId(order.getId());
    payment.setAmount(order.getPrice());
    // response message
    System.out.println(order);
    // rest api call to payment service
    Payment paymentResponse =
           restTemplate.postForObject("http://localhost:8082/api/payment", payment, Payment.class);

    responseMessage = paymentResponse.getPaymentStatus().equals("success")?
           "payment processed successfully": "payment failed ";
    orderRepository.save(order);
    System.out.println(paymentResponse);

    return new TransactionResponse(order , paymentResponse.getTransactionId() , paymentResponse.getAmount(), responseMessage);
}

Controller

@PostMapping
public TransactionResponse bookOrder(@RequestBody TransactionRequest transactionRequest) {
    return orderService.saveOrder(transactionRequest);
}

事务请求 model

@Data
@AllArgsConstructor
@NoArgsConstructor
public class TransactionRequest  {
  private Order order;
  private Payment payment;
}

付款 model

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Payment {
    private int paymentId;
    private String paymentStatus;
    private String transactionId;
    private double amount;
    private int orderId;
}

图片

我收到的错误

邮递员请求

哦,我遇到了问题,因为我正在执行 rest api 调用支付服务,支付服务的发布方法返回字符串而不是支付 object。

这是我之前的后付款方式:

@PostMapping
public String orderPayment(@RequestBody Payment payment) {
   paymentService.doPayment(payment);
   return "Payment done";
}

这就是它应该是的样子

@PostMapping
public Payment orderPayment(@RequestBody Payment payment) {
   return paymentService.doPayment(payment);
}

注意:返回类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法识别的标记“消息”:期待(JSON 字符串、数字、数组、对象或标记“空”、“真”或“假”) “无法识别的标记 'com':期待('true'、'false' 或 'null')” JsonParseException:无法识别的令牌“http”:期待(“真”、“假”或“空”) 如何解决:使用Horton schema-registry解决“无法识别的标记'无法识别':预期为('true','false'或'null')” 错误 400,错误请求,Json 解析错误:无法识别的令牌“agama”:在 Android Retrofit 和 Spring 中期待(“真”、“假”或“空”)引导 com.fasterxml.jackson.core.JsonParseException:无法识别的令牌'Hello':期待(JSON字符串,数字,数组,) 由以下原因引起的错误:com.fasterxml.jackson.core.JsonParseException:无法识别的令牌“ Employee”:正在期待(“ true”,“ false”或“ null”) 引起:com.fasterxml.jackson.core.JsonParseException:无法识别的令牌'okhttp3':期待(JSON字符串') 将 JSON 字符串转换为 Java Object 列表时出现无法识别的令牌错误 值列表中无法识别的标记'(',期望值为')'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM