[英]Convert DTO to an array of DTO's
我正在做一個項目,我的響應是 output。
"data": {
"PERCENT_INTERES": 0.9,
"TERM": 1
}
我有這個設置結果的 DTO
public class ContractDTO {
@JsonProperty("PERCENT_INTERES")
private Float percent;
@JsonProperty("TERM")
private Integer term;
//GETTERS AND SETTERS
}
但是現在我需要得到一個 DTO 的數組。 我嘗試使用此 DTO 列出 dto,但它不起作用。
public class ContractArrayDTO {
public List<ContractDTO> result;
public List<ContractDTO> getResult() {
return result;
}
public void setResult(List<ContractDTO> result) {
this.result = result;
}
}
服務的邏輯。 該服務准備返回一個 ContractDTO,它是一個 object。
ContractDTO res = new ContractDTO();
res.setTerm(1);
res.setPercent(0,9);
有沒有辦法將該響應轉換為數組?
我想要的結果是下面的結果,而不是對象數組。
"data": { [PERCENT_INTERES: 0.9, TERM: 1] }
在這種情況下,您可以只返回List<ContractDTO>
(您不需要自定義包裝器)。
當您正確獲得響應時,只需將結果構建為List
。
List<ContractDTO> dtos = Arrays.asList(new ContractDTO(), new ContractDTO());
// or
List<ContractDTO> dtoList = new ArrayList<>();
dtoList.add(new ContractDTO());
dtoList.add(new ContractDTO());
你可以試試這個方法。
@RestController
public class Controller {
@GetMapping(value="/get")
public List<ContractDTO> get() {
List<ContractDTO> list=new ArrayList<>();
ContractDTO dto=new ContractDTO();
dto.setPercent((float) 1.24);
dto.setTerm(1);
list.add(dto);
dto=new ContractDTO();
dto.setPercent((float) 1.44);
dto.setTerm(2);
list.add(dto);
return list;
}
}
您需要的是list.toArray()
方法。
List<ContractDTO> c = List.of( new ContractDTO(), new ContractDTO() );
ContractDTO[] result = c.toArray( new ContractDTO[0] );
System.out.println( Arrays.toString( result ) );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.