【发布时间】:2020-01-16 01:00:44
【问题描述】:
当我输入邮递员时,我得到了 json,但没有他的“钥匙”,为什么?也许我犯了一个错误,我没有注意到。请帮忙。
我正在使用存储过程来做一些事情。
这是向我展示邮递员的 json。显示我没有他的“钥匙”
{
"data": [
[
1,
"aaa",
"aaa@gmail.com"
],
[
2,
"bbb",
"bbb@gmail.com"
],
[
3,
"ccc",
"ccc@gmail.com"
]
]
}
我想要这样的东西。
{
"data": [
{
userCod: 1,
userName: "aaa",
userEmail: "aaa@gmail.com"
},
{
userCod: 2,
userName: "bbb",
userEmail: "bbb@gmail.com"
},
{
userCod: 3,
userName: "ccc",
userEmail: "ccc@gmail.com"
}
]
}
我留下代码
public class ApiResponse {
private List<UserTest> data;
public List<UserTest> getData() {
return data;
}
public void setData(List<UserTest> data) {
this.data = data;
}
}
@Entity
@Table(name = "tbUsers")
public class UserTest implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "userCod")
private Long id;
@Column(name = "userName")
private String name;
@Column(name = "userEmail")
private String email;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
@Repository
public class ClienteDaoImpl implements IClienteDao{
@Autowired
private EntityManager em;
@SuppressWarnings("unchecked")
@Override
public ApiResponse mntUsers(int op) {
ApiResponse api = new ApiResponse();
Session session = em.unwrap(Session.class);
ProcedureCall call = session.createStoredProcedureCall("sp_MntUser");
call.registerParameter(1, Integer.class, ParameterMode.IN);
call.setParameter(1, op);
call.execute();
api.setData(call.getResultList());
return api;
}
}
@RestController
@RequestMapping(value = "/mntUsers")
public class ClienteController {
@Autowired
private ClienteServiceImpl serviceImpl;
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<?> CrudUsers(@RequestParam(value = "option", required = true) Integer op) {
return new ResponseEntity<>(serviceImpl.mntUsers(op),HttpStatus.OK);
}
}
【问题讨论】:
-
call.getResultList()返回a array of objects然后你总是会得到你的第一个响应,如果你想转换那么你应该将每个对象数组转换为UserTest -
你能举个例子吗?
-
您可以尝试使用@JSONProperty 注解进行 JSON 序列化吗?
-
我试过了,但是@JsonProperty 不起作用。
-
@makoto 我写了一个答案,检查一下!
标签: java spring-boot stored-procedures spring-data-jpa