Как сопоставить массив списков hashmap с другим списком массивов hashmap - PullRequest
1 голос
/ 24 апреля 2019

У меня есть Switch, который содержит 13 case, каждый случай выполняет свой запрос sql.Я получил результат в ArrayList<HashMap<String, String>>.Предполагается, что этот результат будет отображаться с угловым значением, сейчас я использую этот this.respTest = JSON.stringify(response);, поэтому он отображает список «ключ»: «значение».

Моя проблема в том, что каждый запрос дает мне разные базы данныхполя и значения, поэтому я хочу объединить некоторые поля.Я создал этот класс:

public class DataCollect {

private String type ; 
private String entity ; 
private String modPar ;
private String dateModif ; 
private String numVersion ;

public DataCollect(String type, String entity, String modPar, String dateModif, String numVersion) {

    this.type = type;
    this.entity = entity;
    this.modPar = modPar;
    this.dateModif = dateModif;
    this.numVersion = numVersion;
}

public DataCollect() {

}
public String getType() {
    return type;
}
public void setType(String type) {
    this.type = type;
}
public String getEntity() {
    return entity;
}
public void setEntity(String entity) {
    this.entity = entity;
}
public String getModPar() {
    return modPar;
}
public void setModPar(String modPar) {
    this.modPar = modPar;
}
public String getDateModif() {
    return dateModif;
}
public void setDateModif(String dateModif) {
    this.dateModif = dateModif;
}
public String getNumVersion() {
    return numVersion;
}
public void setNumVersion(String numVersion) {
    this.numVersion = numVersion;
} }

В этом классе я должен влиять на имена полей для переменных, которые я создал, и в качестве возвращаемого массива hashmap с данными, которые я извлек из базы данных.,Я имею в виду, что я использовал, например, для возврата "field-name": "value", я хочу вернуть "type": "value", "entity": "value" ..etc

Я используюпружинный чехол для задней части и угловой 5 для передней части.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 25 апреля 2019

По сути, вам нужен способ сопоставления ключей в [каждом из] вашего хэш-макета с соответствующей переменной-членом в POJO «DataCollect».

Если существует соответствие один к одному между присутствующим ключом и соответствующей переменной-членом, вы можете предоставить открытый конструктор в «DataCollect», который принимает хэш-карту и создает соответствующий объект.

public DataCollect(Map<String, String> result) {
    this.type = result.get("type");
    this.entity = result.get("db_entity_key");
    ...
}

Если на одном отображении нет никого, вам нужно создать фабричный класс, который будет принимать вашу Карту в качестве входных данных и некоторый контекст, и возвращает вам построенный объект DataCollect.

Когда у вас есть конструктор или фабричный класс, вам нужно всего лишь перебрать свой список результатов и сделать все необходимое для преобразования каждой карты в объект DataCollect.

Ваш контроллер должен автоматически сериализовать объекты DataCollect в соответствующий JSON, или вы даже можете использовать ObjectMapper Джексона для достижения того же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...