Spring Resttetelate post数据中的意外字段“session”

时间:2012-11-21 00:34:32

标签: java spring resttemplate

{
    "platform": "iOS",
    "device": {
        "os_name": "iPhone OS",
        "manufacturer": "Apple",
        "type": "iPhone3",
        "version": "1",
        "os_version": "5.1.1"
    },
    "app_version": "1.0",
    "device_id": "",
    "app_key": "1234567890",
    "developer_key": "",
    "app_name": "test",
        "session": { // here
        "platform": "iOS",
        "device": {
            "os_name": "iPhone OS",
            "manufacturer": "Apple",
            "type": "iPhone3",
            "version": "1",
            "os_version": "5.1.1"
        },
        "app_version": "1.0",
        "device_id": "",
        "app_key": "1234567890",
        "developer_key": "",
        "app_name": "test"
    }
}

这是MappingJacksonConverter生成的数据,但我不知道如何禁用包含整个递归数据的“session”字段。

HttpEntity<OlSession> sessionEntity = new HttpEntity<OlSession>(new OlSession());

ResponseEntity<String> response = restTemplate.postForEntity("http://localhost:3000/test/abcd", sessionEntity, String.class);

这是发布上述数据的代码。是否需要添加任何部分才能禁用“会话”字段?

1 个答案:

答案 0 :(得分:0)

有两个简单的解决方案。

1)使用jackson注释忽略该属性。

但是这样,OlSession属性中的会话不会在任何地方序列化。

@JsonIgnore
Object getSession() {
  return session
}

查看此文档JacksonAnnotation

2)在发送之前设置null。