Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java springrest中的父类响应_Java_Json_Spring_Rest_Spring Mvc - Fatal编程技术网

Java springrest中的父类响应

Java springrest中的父类响应,java,json,spring,rest,spring-mvc,Java,Json,Spring,Rest,Spring Mvc,我已经使用Jackson实现了一个带有SpringREST的RESTAPI(在pom.xml中使用包org.codehaus.Jackson-jacksonmapper asl-1.9.13指定)。在控制器中,我有: @Controller @RequestMapping("/test") public class TestController { @RequestMapping(value="id", method= RequestMethod.GET) @ResponseBo

我已经使用Jackson实现了一个带有SpringREST的RESTAPI(在pom.xml中使用包org.codehaus.Jackson-jacksonmapper asl-1.9.13指定)。在控制器中,我有:

@Controller
@RequestMapping("/test")
public class TestController {
    @RequestMapping(value="id", method= RequestMethod.GET)
    @ResponseBody
    public Parent findById(@PathVariable("id") int id) {
       Child child = new Child();
       child.setId(id);
       child.setName("test");
       return child;
    }
}
例如,在父项中,我们可以有:

public class Parent {
    int id;

    public void setId(int id) {
        this.id = id;
    }
}
和孩子:

public class Child extend Parent {
    String name;

    public void setName(String name) {
        this.name = name;
    }
}

我的问题是,我希望响应只与父类相关,而不与子类相关(因为现在响应具有子类的结构)。

一个适合您的解决方案是:

@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE)
public class Parent {

    @JsonProperty
    int id;

    public void setId(int id) {
        this.id = id;
    }
}
我必须承认,这个解决方案并不十分优雅,因为您需要向父类中的每个字段添加
@JsonProperty
注释,但它的好处是不需要修改它的任何子类

可以找到jackson库中的所有注释


可以找到
@JsonAutoDetect
的javadoc,不知道问题是什么。您的孩子不扩展父母。退房,对不起。这是一个错误。子对象扩展父对象。