[英]Conditional JSON response creation using Java POJO for rest service
I am creating a rest service and providing json to our consumer.我正在创建一个休息服务并向我们的消费者提供 json。 I have two fields cardType, cardDetails ( i have more fields but these are what relevant).
我有两个字段 cardType,cardDetails(我有更多的字段,但这些是相关的)。
If cardType is credit card then only I want to send another field cardDetails in json.如果 cardType 是信用卡,那么我只想在 json 中发送另一个字段 cardDetails。
If cardtype is something else, Then I don't want to send card details(not even empty data) .如果 cardtype 是别的东西,那么我不想发送卡的详细信息(甚至不是空数据)。 I am not getting how can i achieve solution for this.
我不明白我该如何解决这个问题。
Which language do you use?你使用哪种语言? In spring framework you can do it very easy.
在 spring 框架中,你可以很容易地做到这一点。 You can add if condition in your controller.
您可以在控制器中添加 if 条件。
@RestController
public class YourController {
@Autowired
YourRepository yourRepository;
@RequestMapping("/creaditCardsInfo")
public String sendCreditCardToCustomer(@RequestParam(value = "creditCardType", defaultValue = "none") String cardType,@RequestParam(value = "cardDetails", default = "someInfo") String cardDetails) {
if("credit".equals(cardType.trim()) && !(cardDetails.isEmpty())){
return new RequredCreditInfoObject();
}
if you use maven your pom.xml should contain required libs如果您使用 maven,您的 pom.xml 应包含所需的库
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- JPA Data (if We are going to use Repositories, Hibernate, etc...) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<!-- for JSon marshaling -->
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<scope>test</scope>
</dependency>
Good luck,祝你好运,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.