【问题标题】:Spring Resttemplate unexpected field "session" in the post data帖子数据中的Spring Resttemplate意外字段“会话”
【发布时间】:2012-11-21 00:34:31
【问题描述】:
{ “平台”:“iOS”, “设备”: { "os_name": "iPhone 操作系统", “制造商”:“苹果”, “类型”:“iPhone3”, “版本”:“1”, “os_version”:“5.1.1” }, "app_version": "1.0", “设备编号”: ””, "app_key": "1234567890", "developer_key": "", “app_name”:“测试”, "session": { // 这里 “平台”:“iOS”, “设备”: { "os_name": "iPhone 操作系统", “制造商”:“苹果”, “类型”:“iPhone3”, “版本”:“1”, “os_version”:“5.1.1” }, "app_version": "1.0", “设备编号”: ””, "app_key": "1234567890", "developer_key": "", “app_name”:“测试” } }

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

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

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

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

【问题讨论】:

  • 什么是 OlSession?你做了pojo吗?
  • 是的,这是 pojo 类,包含从“平台”字段到“app_name”字段的所有数据

标签: java spring resttemplate


【解决方案1】:

有两个简单的解决方案。

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

但是这样一来,OlSession 属性中的 session 就不会到处序列化了。

@JsonIgnore 对象 getSession() { 返回会话 }

看看这个文档JacksonAnnotation

2) 发送前只需设置 null。

【讨论】:

  • public class OlSession { private String platform = "iOS"; private OlSessionDevice device = new OlSessionDevice(); private String app_version = "1.0"; private String device_id = ""; private String app_key = "2aa950bc95a950dd21e25e67760f5e96"; private String developer_key = ""; private String app_name = "Daily Deals For Me"; ........ setter and getter } 可以看到没有session字段,如何设置JsonIgnore注解?你能更详细地指定第二种方法吗?如果您提供一些示例代码,那就太好了。谢谢
  • 虽然没有会话字段,但对我来说会话来自哪里很奇怪。我猜杰克逊图书馆会自动在字段末尾附加会话字段。如果你有这方面的经验,你能提供一些信息吗?谢谢
  • getter/setter 怎么样?你确定在 OlSession 中没有类似 'getSession' 的方法吗?
  • 是的,我很确定在 OlSession 类中没有像 getSession 这样的方法。
  • public String getPlatform() { return platform; } public void setPlatform(String platform) { this.platform = platform; } 对于每个字段,都声明了这两个 set/get 方法。
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 2012-01-30
  • 2018-12-01
  • 2012-09-25
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多