首页 > 解决方案 > 如何在 Java Spring 中格式化 JSON 响应?

问题描述

我有一个带有一组私有字段的响应类。前端开发人员要求我以这种 JSON 格式发送服务的响应。到目前为止,响应应该是 JSON 格式,像这样

{
  "status": "SUCCESS",
  "message": {
    "code": "040",
    "description": "verified"
    },
  "qrContent": "aaa | bbb"

 }



        QrCodePaymentResponse response = new QrCodePaymentResponse();
         if (firstThree.equalsIgnoreCase(QRType.EZDYNAMIC.getDescription())) {
              axiPayQrCodePaymentService.ezCashDynamicQR(axiPayQrCodePayment,serviceContext);
              response.setStatus(RequestStatus.SUCCESS.getStatus());
              response.setMessage(----------------);
              response.setQrContent(returnValue.getQrContent);

    }

如何修改上述代码以发送请求的格式?谢谢。

标签: javajsonspringresponse

解决方案


使用弹簧RestController。它的方法以 JSON 格式返回数据

QrCodePaymentResponse.java

public class QrCodePaymentResponse{
    private String response;
    private String qrContent;
    private Message message; 

    //set getters and setters
}

消息.java

public class Message{
    private String code;
    private String description;

    //set getters and setters
}

应用控制器.java

@RestController
public class AppController {

    @RequestMapping(value="/get", method=RequestMethod.GET)
    public QrCodePaymentResponse getPaymentResponse(){
        QrCodePaymentResponse response = new QrCodePaymentResponse();
        Message message = new Message();
        //set values to message
        if (firstThree.equalsIgnoreCase(QRType.EZDYNAMIC.getDescription())) {
            axiPayQrCodePaymentService.ezCashDynamicQR(axiPayQrCodePayment,serviceContext);
            response.setStatus(RequestStatus.SUCCESS.getStatus());
            response.setMessage(message);
            response.setQrContent(returnValue.getQrContent);
        }
        return response;
    }
}

推荐阅读