Получение значений из многозначной карты в угловой

#java #angular #spring #rest

Вопрос:

Я использую сервис REST для tal в БД и добавляю коллекции в многозначную карту следующим образом:

 @Transactional
public MultiValueMap<String, Object> getLookUpItems() {
    MultiValueMap<String, Object> data = new LinkedMultiValueMap<String, Object>();
    List<Roles> roleList = roleRepository.findAll();
    List<LkUnit> parentUnitList = unitRepository.findParentUnit();
    data.add("roleList", roleList);
    data.add("parentUnitList", parentUnitList);
    return data;
}
 

Мой код контроллера выглядит следующим образом:

 @RequestMapping(value = "/getLookUpItems", method = RequestMethod.GET)
public ResponseEntity<?> getLookUpItems(HttpServletRequest request) {
    final HttpSession session = request.getSession(true);
    UserDto loggedInUserObj = (UserDto) session.getAttribute("loggedInUserObj");
    MultiValueMap<String, Object> data = new LinkedMultiValueMap<String, Object>();
    List<Roles> roleList = new ArrayList<Roles>();
    try{
        if(loggedInUserObj.getEntitlements().contains(AppConstants.VIEW_USER_NAMAGEMENT)){
            data = userService.getLookUpItems();
        } else {
            throw new Exception("You do not have permission to take this action .");
        }
    } catch (Exception e) {
            return new ResponseEntity<String>("Update UnSuccessfull", HttpStatus.NOT_FOUND);
    }
   return new ResponseEntity<MultiValueMap<String, Object>>(data, HttpStatus.OK);
}
 

Я пытаюсь получить эти значения в своем прямоугольном коде следующим образом:

 getLookUpItems(){
if(this.roleList.length == 0){
    this.userService.getLookUpItems().subscribe( posts =>{
        this.data = posts;
    }, 
    error => {
        console.log('getLookUpItems - err',error);
        this.messageService.add({severity:'error', summary:'Error Message', detail:error, sticky: true});   
    }, 
    () => {
         console.log('!!!!!!!!!!!!!!!!!',this.data);
         this.roleList = this.data.roleList[0];
         this.parentUnitList = this.data.parentUnitList[0];
         this._sharedService.addRoles(this.roleList);       
    });
}
}
 

Это позволяет мне правильно отображать данные. Но есть ли какой-либо другой способ добавить значения в многозначную карту и получить значения в angular без указания значения индекса, такого как roleList[0], parentUnitList[0]?? Если да, пожалуйста, дайте мне знать, как лучше всего получить значения.