我想从postgresql中的技能实体中检索所有技能,并使用get方法将其发送到Angular前端。在HTTP请求中,我需要发送一个JSON对象。如何将从postgresql中检索到的值转换为JSON对象?
我已经使用Spring JPA连接了PostgreSQL数据库。而且,我在前端得到了一个字符串值。但是我想要那些作为JSON对象
这是我的控制器类
@RestController
@CrossOrigin
public class SkillsController {
@Autowired
SkillsRepository skillsRepository;
@RequestMapping("/getSkills")
@GetMapping("/getSkills")
@CrossOrigin
public String getSkills(){
String result = "";
for (Skills skill : skillsRepository.findAll()){
result += skill.toString();
}
return result;
}
这是我的Angular前端ts文件
public getAllSkills() {
const url = 'http://localhost:8080/getSkills';
this.http.get(url, {responseType: 'text'}).subscribe(
res => {
alert(res);
},
err => {
alert('Error in retrieving');
}
);
}
我想将检索到的值转换为JSON对象,并在前端使用get方法捕获该对象
答案 0 :(得分:3)
Spring默认使用Jackson
序列化/反序列化,并且返回类型为Json
。返回对象本身,而不是返回String返回类型,它将被转换为Json,而无需使用任何其他代码。您的控制器通常如下所示。
@RestController
@CrossOrigin
public class SkillsController {
@Autowired
SkillsRepository skillsRepository;
@GetMapping("/getSkills")
public List<Skill> getSkills() {
return skillsRepository.findAll();
}
}
答案 1 :(得分:2)
我将对您的帖子进行一些重写。因此答案很简单,您只需从存储库中返回列表,Spring便会将列表转换为适当的JSON对象或数组。
@CrossOrigin
public class SkillsController {
public SkillsRepository skillsRepository;
public SkillsController(SkillsRepository _skillsRepository){
skillsRepository = _skillsRepository;
}
@RequestMapping("/getSkills")
@CrossOrigin
public List<skillEntity> getSkills(){
return (List<skillEntity>)skillsRepository.findAll();
}
}