Вам нужно определить ваш bean-компонент следующим образом:
public class Cart {
private final String id;
@JsonCreator
public Cart(@JsonProperty("id") String id) { this.id = id;}
public String getId() { return id; }
}
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"id\":\"56c7b5f7-115b-4cb9-9658-acb7b849d5d5\"}";
Cart cart = mapper.readValue(jsonString, Cart.class);
System.out.println(mapper.writeValueAsString(cart));
}
Выход
{"id":"56c7b5f7-115b-4cb9-9658-acb7b849d5d5"}
По умолчанию Jackson
создает экземпляр любого класса, используя конструктор по умолчанию иметод установки / получения.
Поскольку ваш компонент является неизменяемым, т.е. не имеет конструктора и установщика по умолчанию, вам необходимо явно указать Jackson
, как создать экземпляр класса Cart
с использованием @JsonCreator
и как установить значения свойств с помощью @JsonProperty
.