首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring RequestBody需要加载嵌套对象

Spring RequestBody需要加载嵌套对象
EN

Stack Overflow用户
提问于 2015-11-19 18:17:15
回答 1查看 8.8K关注 0票数 1

我试图在我的一个类中加载一个对象param,但是无法使它工作。外部对象DeviceInfo按预期加载,但MobileDeviceData并不是因为它位于Transaction对象内。

代码语言:javascript
复制
@RequestMapping(value="/mobile/device", method = RequestMethod.PUT)
public ResponseEntity<Object> flagDevice (@RequestBody List<DeviceInfo> deviceInfoList, @RequestHeader(value=IN_AUTH_CUSTOMER_GUID) String inAuthIdentity) {
    ... code here ...

}

为了清晰起见,下面是我简化的@Entity类:

代码语言:javascript
复制
@Entity
public class DeviceInfo implements Serializable {
    @Id 
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;

    private MobileDeviceReasonCode reasonCode;

    @JsonProperty("mobile-data")
    private MobileDeviceData mobileDeviceData;

    public void setMobileDeviceData(MobileDeviceData mobileDeviceData) {
        this.mobileDeviceData = mobileDeviceData;
    }
}

我的MobileDeviceData类如下所示:

代码语言:javascript
复制
@Entity
public class MobileDeviceData implements Serializable {

    @Id 
    private long deviceInfoId;

    @JsonProperty("resilient_id")
    private String resilientId;

    public long getResilientId() {
        return resilientId;
    }

    public void setResilientId(long resilientId) {
       this.resilientId = resilientId;
    }
}

传入的JSON:

代码语言:javascript
复制
[
    {
        "reasonCode": "CHARGEBACK",
        "activityDate": 1447952509,
        "inPermId": "CUSTOMER InPermId",
        "transaction": {
            "mobile-data": {
                "resilient_id": 123
            }
        }
    }
]

有什么方法可以让它加载MobileDeviceData对象,而不必创建一个除了MobileDeviceData类以外什么都不包含的Transaction对象呢?我希望有一些方法可以修改@JsonProperty,以通知它该对象位于Transaction对象内。

另外,修改JSON也不是一个选项。我已经问过了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-20 09:12:31

请检查this所以线程,并看到两个答案。我是在建议第二个。它将适合您的需要,但它是一个过于自定义的解决方案-尽管如此,创建您自己的注释和实现,代码看起来非常干净,没有虚拟包装对象。我认为这是一个非常好和优雅的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33811438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档