【问题标题】:Parsing Base64 json directly into a POJO in a spring MVC controller在 Spring MVC 控制器中将 Base64 json 直接解析为 POJO
【发布时间】:2017-11-08 16:38:37
【问题描述】:

控制器代码

    @RequestMapping(value = "/second", method = RequestMethod.POST, 
    consumes = "application/json")
    @ResponseBody
    public void test(@RequestBody RegistrationRequest 
    registrationRequest) 
    {
       System.out.println(registrationRequest.toString());
    }

POJO

    @Data
    @JsonDeserialize(using = Base64Deserializer.class)
    public class RegistrationRequest {
       @JsonProperty("payment-method-details")
       public PaymentMethodDetails paymentMethodDetails;
       @JsonProperty("customer-details")
       public CustomerDetails customerDetails;
    }

CustomerDetails、PaymentMethodDetails 是它们自己的 POJO。 我对 Spring MVC 概念很陌生,这就是我到目前为止所知道的,但是在从 Postman 发出 post 请求时,它不起作用。我在做什么错了?

我无法控制请求将如何到来。

使用 Base64 反序列化器

Decode base64 encoded JSON to POJO with jackson and spring-boot

【问题讨论】:

  • 您可以发布所需的请求格式吗?

标签: java json spring spring-mvc


【解决方案1】:

从问题中不清楚,关于请求的所需格式。

上面的代码应该可以很好地处理这样的请求:

curl -X POST "http://myhost:port/rootPath/second/" -d '{"payment-method-details":"eyJwYXltZW50TWV0aG9kRGV0YWlsc1ZhcjEiOiJzb21lIHRleHQiLCJwYXltZW50TWV0aG9kRGV0YWlsc1ZhcjIiOiJzb21lIHRleHQyIn0=", "customer-details":"eyJjdXN0b21lckRldGFpbHNWYXIxIjoic29tZSB0ZXh0IiwiY3VzdG9tZXJEZXRhaWxzVmFyMiI6InNvbWUgdGV4dDIifQ=="}'

这将使上述代码工作并打印输出。

注意,这里eyJjdXN0b21lckRldGFpbHNWYXIxIjoic29tZSB0ZXh0IiwiY3VzdG9tZXJEZXRhaWxzVmFyMiI6InNvbWUgdGV4dDIifQ== 以base64 格式解码为{"customerDetailsVar1":"some text","customerDetailsVar2":"some text2"},其他变量也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2011-04-24
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多