Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 泽西失去身份证_Java_Spring_Jersey_Jsr311 - Fatal编程技术网

Java 泽西失去身份证

Java 泽西失去身份证,java,spring,jersey,jsr311,Java,Spring,Jersey,Jsr311,我使用Jersey作为JSR311实现。我试图转换为JSON的对象如下所示: 结果是: 换句话说,“id”字段正在丢失。在我的其他对象中,id字段具有其他名称,如orderId、customerId等。。。这些字段不会丢失 我的pom.xml如下所示: 泽西岛 泽西服务器 1.11 泽西岛 泽西json 1.11 泽西岛 泽西灰熊2 1.11 泽西岛 泽西servlet 1.11 com.sun.jersey.contribs 泽西之春 1.11 org.springframe

我使用Jersey作为JSR311实现。我试图转换为JSON的对象如下所示:

结果是:

换句话说,“id”字段正在丢失。在我的其他对象中,id字段具有其他名称,如orderId、customerId等。。。这些字段不会丢失

我的pom.xml如下所示:


泽西岛
泽西服务器
1.11
泽西岛
泽西json
1.11
泽西岛
泽西灰熊2
1.11
泽西岛
泽西servlet
1.11
com.sun.jersey.contribs
泽西之春
1.11
org.springframework
春天
org.springframework
弹簧芯
org.springframework
弹簧网
org.springframework
春豆
org.springframework
spring上下文

没有进一步的配置。 我在泽西岛的网站上或谷歌上都找不到任何有用的东西,所以我在这里发表了我的第一篇文章


是否缺少任何配置选项?如何对id字段进行JSONify?

id没有什么特别之处。从类上的
@XmlRootElement
中,我假设您正在使用JAXB进行编组(Jersey的默认值)。在默认配置中,JAXB需要一个getter将字段封送到XML/JSON,并需要一个setter将字段从XML/JSON解封。在本例中,我猜您缺少一个
公共整数getId()
方法。通过将
@xmlement
添加到
id
字段,可以轻松更改此行为。

可能无法封送
id
的原因有很多

1-它有一个空值

默认情况下,JAXB实现不会封送空值。如果希望封送空值,请确保添加以下注释

@XmlElement(nillable=true)
有关更多信息,请参阅:

2-有一个字段,但没有访问器(get/set)方法

默认情况下,JAXB只映射公共字段和访问器。任何不符合此条件的内容都将被视为未映射。您可以通过指定
XmlAccessorType(XmlAccessType.FIELD)

或者通过注释字段

@XmlRootElement
public class deliveryTimes{
    @XmlElement
    private Integer id;
}
有关更多信息,请参阅:

3-有一个get方法,但没有set方法


如果有一个get方法,但没有附带的set方法,那么JAXB实现会将其视为未映射属性。要解决此问题,只需将get方法映射为
@xmlement

,或者,如果没有属性,可以使用@xmlacessortype(xmlacesstype.FIELD),谢谢您的回答。实际上,我正在寻找一种传递空值的方法(您在#1中猜对了),并将“id”的数据类型从int更改为Integer,但忘记了setter。下次我将让IDE重构它。再次感谢您详细而有用的回答(如果我有足够的声誉,我会感谢的)!
<!-- other stuff -->
<!--  JERSEY -->
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.11</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.11</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-grizzly2</artifactId>
    <version>1.11</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-servlet</artifactId>
    <version>1.11</version>
</dependency>

<!-- Jersey + Spring -->
<dependency>
    <groupId>com.sun.jersey.contribs</groupId>
    <artifactId>jersey-spring</artifactId>
    <version>1.11</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- other stuff -->
@XmlElement(nillable=true)
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class deliveryTimes{
    ...
}
@XmlRootElement
public class deliveryTimes{
    @XmlElement
    private Integer id;
}