Преобразуйте данные, полученные из Spring-Boot в JSON и извлеките их в угловой интерфейс - PullRequest
1 голос
/ 07 июля 2019

Я хочу получить все навыки из сущности навыков в postgresql и отправить ее с помощью метода get во внешний интерфейс Angular. В HTTP-запросе мне нужно отправить объект JSON. Как я могу преобразовать полученные значения из postgresql вобъект JSON?

Я подключил базу данных postgresql с помощью пружинного JPA.А также я получаю строковые значения для моего интерфейса.Но я хотел получить их как объект 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 front end 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 во внешнем интерфейсе

Ответы [ 2 ]

3 голосов
/ 07 июля 2019

Spring использует Jackson сериализацию / десериализацию по умолчанию, а также тип возвращаемого значения Json. Вместо того, чтобы возвращать возвращаемый тип String, верните сам объект, и он будет преобразован в Json без какого-либо дополнительного кода с вашей стороны. Ваш контроллер обычно выглядит так, как указано ниже.

@RestController
@CrossOrigin
public class SkillsController {

    @Autowired
    SkillsRepository skillsRepository;

    @GetMapping("/getSkills")
    public List<Skill> getSkills() {
        return skillsRepository.findAll();
    }
}
2 голосов
/ 07 июля 2019

Я буду переписывать ваш пост. поэтому ответ довольно прост, вы можете просто вернуть список из репозитория, и 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();
  }

}
...