首页 > 解决方案 > 将从 spring-boot 检索到的数据转换为 JSON 并在 Angular 前端获取它

问题描述

我想从 postgresql 中的技能实体中检索所有技能,并使用 get 方法将其发送到 Angular 前端。在 HTTP 请求中,我需要发送一个 JSON 对象。如何将检索到的值从 postgresql 转换为 JSON 对象?

我已经使用 spring JPA 连接了 postgresql db。而且我还得到了一个字符串值到我的前端。但我想要那些作为 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 方法捕获该对象

标签: jsonspring-bootspring-data-jpaangular6postgresql-9.4

解决方案


SpringJackson默认使用序列化/反序列化,返回类型也是Json. 与其返回 String 返回类型,不如返回对象本身,它将被转换为 Json,而无需任何额外的代码。您的控制器通常如下所示。

@RestController
@CrossOrigin
public class SkillsController {

    @Autowired
    SkillsRepository skillsRepository;

    @GetMapping("/getSkills")
    public List<Skill> getSkills() {
        return skillsRepository.findAll();
    }
}

推荐阅读