为什么我的数据无法成功转换为我定义的 json 属性



我试图将sqs消息转换为自定义的sqs事件,convertMessageFromSqsForEvent中的消息是有效的,并且它有值,但sqsEventProperties为null,这是怎么回事?

fun convertMessageFromSqsForEvent(message: Message): SQSEventProperties? {
var sqsEventProperties: SQSEventProperties? = null
sqsEventProperties = mapper?.readValue(message.body, SQSEventProperties::class.java)
return sqsEventProperties
}
data class SQSEventProperties(
@JsonProperty("attributes") var attributes: String?,
@JsonProperty("awsRegion") var awsRegion: String?,
@JsonProperty("body") var body: String?,
@JsonProperty("eventSource") var eventSource: String?,
@JsonProperty("eventSourceARN") var eventSourceARN: String?,
@JsonProperty("md5OfBody") var md5OfBody: String?,
@JsonProperty("md5OfMessageAttributes") var md5OfMessageAttributes: String?,
@JsonProperty("messageId") var messageId: String?,
@JsonProperty("receiptHandle") var receiptHandle: String?,
)

消息

{MessageId: 94995ca7-ee33-4109-aabf-23d375878140,
ReceiptHandle: AQEBf5kvP0RwvFtKPmZglRhxXAS7FKGxbUCazYXD0+HFq6hpQGri3KU8TZirGC9NEu86DZretaBi5oeFbzzkWnMoxwzZ68/m7FZLt8fxX0gCoL2CxJMy0JXClRTZI+O06Hwn+CZMb5LOAKkGffJUS48dfe5GERKAZGsnLK4vA2pODrxfv1vvC6CXTzejoA9Dw+kuo51F5S86iRzXjItjzRJDxcJp4xeXdjrWps4Wfx233G+x4KiP9t9yZ73L9ucDLzdguDwTee07KG5SdRgHDQWyXcc0IJNtAe/NDmkIhWhigHoZSQmVCVNQFBtcYuB6X2khB+oQZsLz0Vh1NLs3zQVuusBbMg6tpk94N28FUKCIugtwDxBRjIdJqfbUXEeL1PxXCBcb+Pn3vLH9NHKHEclxbg==,
MD5OfBody: de5da762733bf71530cdb2aba2892a65,
Body: Please send request for updated data,
Attributes: {},
MessageAttributes: {}}

数据类的字段名称必须与Json数据的键相同。您可以修改数据类,然后重试。


data class SQSEventProperties(
@JsonProperty("Attributes") var attributes: String?,
@JsonProperty("AwsRegion") var awsRegion: String?,
@JsonProperty("Body") var body: String?,
@JsonProperty("EventSource") var eventSource: String?,
@JsonProperty("EventSourceARN") var eventSourceARN: String?,
@JsonProperty("Md5OfBody") var md5OfBody: String?,
@JsonProperty("Md5OfMessageAttributes") var md5OfMessageAttributes: String?,
@JsonProperty("MessageId") var messageId: String?,
@JsonProperty("ReceiptHandle") var receiptHandle: String?,
)

最新更新