我在iOS端使用RestKit,在Java端使用Jersey来谈论JSON。

RestKit发送以下内容:

{
    "user": {
        "emailAddress": "someuser",
        "password": "somepassword"
    }
}


在Java方面,User类如下:

@Entity
public class User {
    public String emailAddress;
    public String password;
    public List<UserForm> userForms;

    ... getters and setters ...


我在Jersey服务中有以下内容:

@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public User login(User someUser) throws IOException
{
 ...


someUser对象中的所有内容均为null。所以,我想我想让Jersey忘记根节点,因为当他发回某些东西时,它的形式为:

{
    "emailAddress": "server",
    "password": "serverpass",
}


如果有帮助,我的web.xml包含以下内容:

<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.something.services;org.codehaus.jackson.jaxrs</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>


<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/webapi/*</url-pattern>
</servlet-mapping>


抱歉,我对泽西岛有点陌生,我一直在疯狂地寻找周围的答案,所以我们将不胜感激。预先感谢,大家!

最佳答案

如果您希望RestKit从JSON中删除user键(或者不添加它),请将请求描述符上的rootKeyPath设置为nil

09-04 06:17
查看更多