使用Java POJO进行有条件JSON响应的REST服务

时间:2019-03-20 10:23:59

标签: java json rest

我正在创建一个休息服务并向我们的消费者提供json。 我有两个字段cardType,cardDetails(我有更多字段,但是这些是相关的)。

如果cardType是信用卡,那么只有我要在json中发送另一个字段cardDetails。

如果卡片类型是其他类型,那么我不想发送卡片详细信息(甚至不发送空数据)。 我没有得到如何实现此目的的解决方案。

1 个答案:

答案 0 :(得分:0)

您使用哪种语言? 在spring框架中,您可以非常容易地做到这一点。 您可以在控制器中添加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(); 
}

如果使用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>

祝你好运