首先,非常感谢你阅读这个问题。
我有一个JPA项目,一切正常,我用控制器得到的json就是这样:
{"id": 1, "name": "Canada"},{"id": 2, "name": "USA"}
一切都很好,但我希望得到一个Jsend标准的json,它是这样的:
{
status : "success",
data : {
"country" : [
{"id": 1, "name": "Canada"},
{"id": 2, "name": "USA"}
]
}
}
{
"status" : "fail",
"data" : { "title" : "A title is required" }
}
{
"status" : "error",
"message" : "Unable to communicate with database"
}
如您所见,我希望获得成功,失败或错误的状态: 但我不知道该怎么做。这是我的DTO,DAO和控制器
@Entity
public class Country implements Serializable {
private static final long serialVersionUID = -7256468460105939L;
@Id
@Column(name="id")
private int id;
@Column(name="name")
private String name;
//Constructor, get and set
DAO
@Repository
@Transactional
public class CountryRepository {
@PersistenceContext
EntityManager entityManager;
public CountryDTO findById(int id) {
return entityManager.find(CountryDTO.class, id);
}
}
控制器
@RestController
public class CountryController {
@Autowired
CountryDTO repository;
@RequestMapping(value="api/country/{id}", method=RequestMethod.GET)
public @ResponseBody CountryDTO getByID(@PathVariable("id") int id){
return repository.findById(id);
}
}
再次感谢您的时间。
答案 0 :(得分:-1)
从我的角度来看,这是一个非常好的问题。所以我可以给出行动项目清单来实现这一目标。
@ControllerAdvice
注释。然后您应该创建自己的对象,类似于JSend。就我而言,我创建了JSendMessage
类
public class JSendMessage {
String status;
String message;
Object data;
// Add getter and setter
}
现在,您应该在您的@ControllerAdvice
上方的地图上方找回您所需的对象。
@ControllerAdvice