遍历打字稿中的地图对象列表

Iterate through list of map objects in typescript

我有一个打字稿可以调用 java class 中的 API 方法。此方法 returns 地图列表。

Typescript 文件如下所示:在此我试图从 dataBody 检索数据,但是当我遍历它时,它显示 [Object Object],我想看看需要什么在打字稿文件端完成以从 Java class.

检索数据集
*public populatePeople(hyperfindId: number) {
            this.getGridInstance()
            //this.peopleList= [];
            this.personIds = [];
            this.personNameById = new Map<string, string>();  
            this.pokerEntryService.getPeopleByHyperfind(hyperfindId, this.tbSite, this.tbDivision, this.tbDepartment).subscribe((data)=>{
                                 
                    let dataBody = JSON.parse(JSON.stringify(data.body));
                    
                    //Need to retrieve data here.
                    
                    if(dataBody.maxExceeded === true){
                           this.showError = true;
                           this.alertService.createAlert('WARNING', this.edapLocaleConvertor.convertLocaleMessage('peopleEditor.maxPeopleExceeded'));       
                    }
             },
             err => {
                    this.showErrorMessage(err);
             });
        }**
     

Java class:

    public List<Map<String,String>> getPeople(Long hyperfindId, String site, String division, String 
   department, LocalDate startDate, LocalDate endDate, String tenantId, String transactionId) {
        Map<String, String> headersMap = new HashMap<String, String>();
        headersMap.put("Authorization", edapRequestContextService.getAccessToken());
        headersMap.put("appKey", GamingPropertiesLoader.getTenantPropertyValue(tenantId,PropertyConstants.APP_KEY, transactionId));
        headersMap.put("Content-Type", EdapConstants.CONTENT_TYPE_JSON);
        //String buildPrimaryOrg = "/Organization/"+site+"/"+division+"/"+department;
        String buildPrimaryOrg = "Organization/United States/Metropolitan Plant/Shipping";
        
        String debugMsg = "buildPrimaryOrg...." + buildPrimaryOrg;
        
        logger.error(TenantContext.getTenantId(), debugMsg, Constants.TOKE_POOL, transactionId);
        
        String requestBody = "{"
                            + "\"select\": "
                            + "["
                                + "{\"alias\": \"PersonId\",\"key\": \"PEOPLE_PERSON_ID\"},"
                                + "{\"alias\": \"PersonNum\",\"key\": \"PEOPLE_PERSON_NUMBER\"},"
                                + "{\"alias\": \"CoreOrgJob\",\"key\": \"EMP_COMMON_PRIMARY_ORG\"},"
                                + "{\"alias\": \"primary job\",\"key\": \"EMP_COMMON_PRIMARY_JOB\"}"
                            + "],"
                            + "\"where\": "
                                + "[{\"key\": \"EMP_COMMON_PRIMARY_ORG\",\"alias\": \"CoreOrgJob\","
                                + "\"operator\": \"IN\","
                                + "\"values\" : [\""+buildPrimaryOrg+ "\"]}],"
                            + "\"from\": {"
                                + "\"view\": \"EMP\","
                                    + "\"employeeSet\": {"
                                            + "\"dateRange\": "
                                            + "{"
                                                + "\"symbolicPeriod\": {\"id\": \"1\"}"
                                            + "},"
                                            + "\"hyperfind\": "
                                            + "{"
                                                + "\"id\": \"2\""
                                            + "}"
                                    + "}"
                            + "}"
                        + "}";
        
        ResponseEntity<?> response = gamingRestService
                .doPost(tenantId, GamingPropertiesLoader.getTenantPropertyValue(tenantId, PropertyConstants.WFD_API_HOST, transactionId)
                        + Constants.PERSON_MULTI_READ_COMMONS_URI, headersMap, requestBody, String.class, GamingPropertyConstants.REST_GET_PEOPLE_BY_HYPERFIND_ID, transactionId);  

            
        List<Map<String,String>> peopleList =  new ArrayList<>();
        
        JSONObject json = new JSONObject(response.getBody().toString());        
        json = json.getJSONObject("data");      
        JSONArray jsonArray = json.getJSONArray("children");
        
        for(int i=0; i<jsonArray.length(); i++) {
            JSONObject attributesData = jsonArray.getJSONObject(i);
            
            JSONArray attributesArray = attributesData.getJSONArray("attributes");
            
            Map<String,String> m1 = new HashMap<String,String>();
            for(int j=0; j<attributesArray.length(); j++) {
                JSONObject pData = attributesArray.getJSONObject(j);

                debugMsg = "personData:...." + pData.getString("value");
                logger.error(TenantContext.getTenantId(), debugMsg, Constants.TOKE_POOL, 
                transactionId);

    
                m1.put(pData.getString("key"), pData.getString("value"));
                peopleList.add(m1);
            }
        }
        debugMsg = "peopleList size:...." + peopleList.size();
        logger.error(TenantContext.getTenantId(), debugMsg, Constants.TOKE_POOL, transactionId);

        return peopleList;
    }
 

已解决。我将 hashmap 更改为一个对象以使用这些值。它现在工作正常。