我正在使用 Spring Integration 来使用带有 JSON Payload 的消息。
在我的春天背景下,我有
<integration:channel id="jsonToMyMessageConverterChannel"/>
<integration:json-to-object-transformer
type="com.acme.messaging.message.MyMessage"
input-channel="jsonToMyMessageConverterChannel"
output-channel="myMessageUpdateChannel"/>
我的消息相关对象是:
MyMessage.java
@JsonIgnoreProperties(ignoreUnknown=true)
public class MyMessage {
@JsonProperty
private String timestamp;
@JsonProperty("msgs")
private List<Message> messages;
// Getters and Setters...
}
消息.java
@JsonIgnoreProperties(ignoreUnknown=true)
public class Message {
@JsonProperty
private Integer msgId;
@JsonProperty("msgText")
private String text;
// Getters and Setters...
}
当 json 转换器尝试将消息转换为对象时,它会失败
Caused by: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "msgs" (Class com.acme.messaging.message.MyMessage), not marked as ignorable
JSON 有效负载肯定有msgs
一个数组,其中包含代表Message.java
类的对象。
鉴于JSON具有被抱怨的字段并且类本身也被注释为忽略未知字段,任何人都可以提出发生异常的原因吗?
更新
经过一些调试@JsonProperty("msgs")
,由于某种原因,注释似乎没有被使用。