有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

json@@JsonProperty批注不适用于java属性

我有一个控制器,它以json的形式接受输入请求

{
           "default": true
}

默认值是一个java关键字,所以我将其设置为

@JsonProperty(“default”)
Private boolean isDefault;

我有一个客户端,我需要进行一个只接受default布尔值的调用

当我以上述方式发送请求时,它不是以default: true的形式发送,而是以isDefault:true的形式发送,对客户端的调用对我来说是失败的。说isDefault是不存在的

有人能帮忙吗

同样地,我从客户机得到一个默认响应,该响应的值与我发送的值相同。我如何接受系统中的响应?我试过使用JsonProperty,但它不起作用。还有来自gson的@SerializedName。有人能帮忙吗


共 (1) 个答案

  1. # 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}