Вы можете изменить метод получения salary
в EmployeeDTO
для возврата отформатированного значения. Например:
public String getSalary() {
return NumberFormat.getCurrencyInstance().format(salary);
}
Будет возвращено отформатированное значение в соответствии с текущим значением по умолчанию JVM Locale
, например: $12,345.00
Вы также можете изменить это, если предоставите пользовательский форматер. Например:
public String getSalary() {
DecimalFormat df = new DecimalFormat("#,###.00");
return df.format(salary);
}
Будет возвращено отформатированное значение, например: 12,345.00
.
Вот как я это проверил:
List<EmployeeDTO> employees = new ArrayList<>();
employees.add(new EmployeeDTO("Emp1", BigDecimal.valueOf(12345)));
employees.add(new EmployeeDTO("Emp2", BigDecimal.valueOf(22134)));
employees.add(new EmployeeDTO("Emp3", BigDecimal.valueOf(44233)));
System.out.println(new ObjectMapper().writeValueAsString(employees)); // printing JSON
Выход:
[
{
"name": "Emp1",
"salary": "$12,345.00"
},
{
"name": "Emp2",
"salary": "$22,134.00"
},
{
"name": "Emp3",
"salary": "$44,233.00"
}
]