gpt4 book ai didi

java - Spring RequestBody需要加载嵌套的Object

转载 作者:行者123 更新时间:2023-11-30 07:46:48 25 4
gpt4 key购买 nike

我试图获取一个对象参数来加载我的一个类中,但无法让它工作。外部对象 DeviceInfo 按预期加载,但 MobileDeviceData 未按预期加载,因为它位于 Transaction 对象内部。

@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 类:

@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 类如下所示:

@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:

[
{
"reasonCode": "CHARGEBACK",
"activityDate": 1447952509,
"inPermId": "CUSTOMER InPermId",
"transaction": {
"mobile-data": {
"resilient_id": 123
}
}
}
]

是否可以通过某种方式让它加载 MobileDeviceData 对象,而无需创建一个 Transaction 对象,该对象不会保存除 MobileDeviceData< 之外的任何内容 类?我希望有某种方法可以修改 @JsonProperty 以通知它该对象位于 Transaction 对象内。

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

最佳答案

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

关于java - Spring RequestBody需要加载嵌套的Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com