У меня возникают проблемы с поиском имени этого формата и, следовательно, выяснения, как преобразовать его в POJO
{
ExampleKey1: ExampleValue1,
ExampleKey2: ExampleValue2,
ExampleObjectKey: {
"ObjectKey" : "ObjectValue"
}
}
Это явно не JSON или ION.Любые предложения?
Немного предыстории:
Я пытаюсь читать сообщения SQS (опубликованные через SNS) асинхронно, используя JMS, например: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/getting-started.html - перейти в раздел«Получение сообщений асинхронно»
Полученное сообщение выглядит примерно так:
{MessageId: 123-123-123,ReceiptHandle: BigTextWithCharactersLike+and/andNumbers123,MD5OfBody: AlphaNumberic123,Body: {
"Type" : "Notification",
"MessageId" : "uuid-uuid-uuid-uuid",
"TopicArn" : "arn:aws:sns:us-west-2:someARN",
"Message" : "{\"this\":\"is\",\"the\":\"part\",\"i\":\"am\",\"interested\":\"in\"}",
"Timestamp" : "timestamp",
"SignatureVersion" : "1",
"Signature" : "alphanumeric+charatersLike+and/and==",
"SigningCertURL" : "https://an-sns-url",
"UnsubscribeURL" : "https://an-sns-url"
},Attributes: {},MessageAttributes: {}}
Это я нашел, выполнив следующее onMessage:
public void onMessage(Message message) {
try {
// Cast the received message as TextMessage and print the text to screen.
System.out.println("Received: " + ((TextMessage) message).getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
I 'мы заменили фактические значения на фиктивные выше.Если я смогу разобрать вышеперечисленное в POJO, я смогу извлечь «Тело» и, следовательно, «Сообщение», то есть ту часть, которая мне интересна.
PS: обратите внимание, что текст в основномPOJO https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/sqs/model/Message.html