Я получаю следующий объект из другого сервиса, и мне нужно разобрать его в POJO, который есть в моем сервисе.Входящий объект выглядит следующим образом: AddressMessage.java
public class AddressMessage {
@NotEmpty
@JsonProperty("id")
private String id;
@NotEmpty
@JsonProperty("address")
private String address;
public String getId() {
return this.id;
}
public String getAddress() {
return this.address;
}
@SuppressWarnings("unchecked")
@JsonProperty("data")
public void unpackNested(Map<String, Object> rawMessage) {
Map<String, String> data = (Map<String, String>) rawMessage.get("data");
this.id = (String) data.get("id");
this.address = (String) data.get("address");
}
}
, а входящие данные выглядят следующим образом:
{“data”: { “id” : “sampleId”, “address”: “sampleAddress” }}
Я попытался проанализировать входящую строку json в простой объект, но это нене работает:
private void publishMessage(String rawMessage, AMQP.BasicProperties props) throws IOException {
Object json = objectMapper.readValue(rawMessage, Object.class);
log.debug(objectMapper.writeValueAsString(json));
Я также попытался взять необработанное сообщение и отобразить его напрямую в класс, используя объектный преобразователь, например:
private void publishMessage(String rawMessage, AMQP.BasicProperties props) throws IOException {
AddressMessage addressMessage = objectMapper.readValue(rawMessage,
AddressMessage.class);
}
Исключение для приведенного выше кода:
Unexpected character ('“' (code 8220 / 0x201c)): was expecting double-quote to start field name
Я хочу извлечь свойства "id" и "address" из объекта, но продолжаю работать в исключительной ситуации из-за ошибок синтаксического анализа.Некоторые рекомендации будут высоко оценены, спасибо!
Дополнение: я в настоящее время не использую метод "unpackNested", но подумал, что добавлю его на случай, если возникнет какая-либо идея