繁体   English   中英

在Spring MVC控制器中将Base64 json直接解析为POJO

[英]Parsing Base64 json directly into a POJO in a spring MVC controller

控制器代码

    @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概念非常陌生,这是到目前为止我所知道的所有内容,但是在向邮递员发出发帖请求时,它不起作用。 我在做什么错?

我无法操纵任何请求将如何到达。

使用Base64解串器

使用jackson和spring-boot将base64编码的JSON解码为POJO

从这个问题尚不清楚有关请求的所需格式。

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

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

这将使上面的代码正常工作并输出输出。

请注意,此处eyJjdXN0b21lckRldGFpbHNWYXIxIjoic29tZSB0ZXh0IiwiY3VzdG9tZXJEZXRhaWxzVmFyMiI6InNvbWUgdGV4dDIifQ=={"customerDetailsVar1":"some text","customerDetailsVar2":"some text2"} eyJjdXN0b21lckRldGFpbHNWYXIxIjoic29tZSB0ZXh0IiwiY3VzdG9tZXJEZXRhaWxzVmFyMiI6InNvbWUgdGV4dDIifQ== {"customerDetailsVar1":"some text","customerDetailsVar2":"some text2"}在“ eyJjdXN0b21lckRldGFpbHNWYXIxIjoic29tZSB0ZXh0IiwiY3VzdG9tZXJEZXRhaWxzVmFyMiI6InNvbWUgdGV4dDIifQ== {"customerDetailsVar1":"some text","customerDetailsVar2":"some text2"}

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM