我是Spring框架的新手,嘗試構建RESTful Web服務。現在我有點卡住了這個問題。JSON與Spring的嵌套集合對象
我有一些實體類一樣的UserDetails(getter/setter方法,equals()和hashCode()方法略):
public class UserDetails {
private Long userId;
private String login;
private String firstName;
private String lastName;
private Map<ActionDetails, Boolean> confirmedActionsMap;
}
和ActionDetails(再次getter/setter方法,equals()和hashCode()方法略) :
public class ActionDetails {
private Long actionId;
private String actionName;
private String actionDescription;
}
我在@RestController返回的UserDetails的方法:
@GET
@RequestMapping("/user")
@Produces ({ "application/json" })
public ResponseEntity<User> getUser(){
UserDetails userDetails = //obtaining user somehow
return new ResponseEntity<User>(userDetails, HttpStatus.OK);
}
但作爲迴應,我得到JSON在地圖ActionDetails不序列化JSON,但簡稱的toString()就可以了:
{
"userId": 1,
"login": "j.doe",
"firstname": "John",
"lastname": "Doe",
"confirmedActionsMap": {"[email protected]": true}
}
ActionDetails自己與否有關其他控制器方法返回的是序列化到JSON就好了。 什麼是最適合序列化REST中的集合中的對象的方法?
它調用ActionDetails.toString(),因爲在這種情況下它是地圖的關鍵。 –
我建議創建兩種類型的列表confirmedActionsList和NotConfirmedActionsList並省略布爾值。 –