@@ JsonProperty注释不适用于java属性

时间:2020-01-16 22:03:52

标签: java json jackson gson

我有一个控制器,可以接受输入请求作为json

{
           "default": true
}

默认为Java关键字,因此我将其设置为

@JsonProperty(“default”)
Private boolean isDefault;

我有一个客户,我需要拨打一个只接受布尔值的default的电话。

当我执行上述发送请求的方式时,它没有以default: true的形式发送,而是以isDefault:true的形式发送,并且对客户端的呼叫对我来说失败了。说isDefault不存在。

有人可以帮忙吗?

在同一条纸上,我再次收到来自客户端的默认响应,并使用与我发送的相同的值。如何在系统中接受响应?我尝试了使用JsonProperty,但是它没有用。还有来自gson的@SerializedName。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

我已经创建了示例项目。这就是我所得到的。

Pojo课:

    public class Pojo {
    @JsonProperty("default")
    private boolean isDefault;

    public boolean isDefault() {
        return isDefault;
    }

    public void setDefault(boolean aDefault) {
        isDefault = aDefault;
    }
}

控制器:

 import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/default")
    public Pojo test(){
        Pojo p = new Pojo();
        p.setDefault(true);
        return p;
    }
}

pom依赖项:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

输出:

{"default":true}