【发布时间】:2016-02-22 00:59:02
【问题描述】:
我试图让一个对象参数加载到我的一个类中,但无法让它工作。外部对象 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 对象而不必创建一个除了MobileDeviceData 类之外什么都没有的Transaction 对象?我希望有某种方法可以修改@JsonProperty 以通知它该对象在Transaction 对象内。
另外,修改 JSON 不是一种选择。我已经问过了。
【问题讨论】:
-
在DeviceInfo中,你是否省略了transactino对象?
-
@reos - 是的,它除了持有 MobileDeviceData 对象外什么都不做。所以想省略它。
标签: java json spring spring-mvc