为什么在 JSON 中看不到"keys"?



当我进入邮递员时,我得到了json,但没有他的"钥匙",为什么?也许我犯了一个错误,我没有注意到。请帮忙。

我正在使用一个存储过程来做一个crud。

这是向我展示邮递员的 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);
}
}

创建一个名为getCollectionType的方法

public static <T, C extends Collection<T>> C getCollectionType(Iterable<?> from, C to, Class<T> listClass) {
for (Object item: from) {
to.add(listClass.cast(item));
}
return to;
}

然后在以下行使用它:

api.setData(getCollectionType(call.getResultList(), 
new ArrayList<UserTest>(), 
UserTest.class));

最新更新