Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在spring集成中Json未转换为对象_Java_Json_Spring Integration_Amazon Sns - Fatal编程技术网

Java 在spring集成中Json未转换为对象

Java 在spring集成中Json未转换为对象,java,json,spring-integration,amazon-sns,Java,Json,Spring Integration,Amazon Sns,我正在吃晚饭 .transform(Transformers.fromJson(SNSMessage.class)) 不返回从我的JSON转换的值。JSON输入是 { "Type": "Notification", "MessageId": "b5c64f3f-59e3-5fce-9ad6-1e98973c9537", "TopicArn": "arn:aws:sns:us-east-1:194477963434:local-hera-update", "Sub

我正在吃晚饭

.transform(Transformers.fromJson(SNSMessage.class))
不返回从我的JSON转换的值。JSON输入是

{
    "Type": "Notification",
    "MessageId": "b5c64f3f-59e3-5fce-9ad6-1e98973c9537",
    "TopicArn": "arn:aws:sns:us-east-1:194477963434:local-hera-update",
    "Subject": "com.accuity.hera.model.HeraNotification",
    "Message": "{\"id\":\"65e60559-cab5-4027-88a2-46185fbd50b9\",\"resourceType\":\"listItem\",\"action\":\"I\",\"timeOfAction\":\"2017-05-30T19:48:46Z\",\"source\":\"gwl\"}",
    "Timestamp": "2017-05-30T19:48:47.593Z",
    "SignatureVersion": "1",
    "Signature": "Xz0qg0byLMA1fwIRbi7aWcEzhtcLBOmzyUluL1W5URu4WaiEO3G\/+hPSpsFXGxcSYNYRgpKhL9QAP2qLkuMlSEMqiEOHaSr88UaB8QRV2lUEjdBAWpuFYVBPdb+jpo6n3m89vVHoYfFWk8yBkc0zuoRl4OYcUXfTZiWWQkkrT8r9OzWU8LxQwgf0jgr1xEoqbl7uMHIp7nHp3cKstQ0mbK6yxMQ8faxfDm+IwH3k8BBH2\/CXmRg9WME6JK77jvagMUHNhUahWKIjm4iz+TCQCdnmHQR21hmgxlkhdrSxZ1FBbk6BjxfX7gorEwwfY1gYNoZCXxsN63+4vSiFMlOAAQ==",
    "SigningCertURL": "https:\/\/sns.us-east-1.amazonaws.com\/SimpleNotificationService-b95095beb82e8f6a046b3aafc7f4149a.pem",
    "UnsubscribeURL": "https:\/\/sns.us-east-1.amazonaws.com\/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:194477963434:local-hera-update:7de3da56-9e6c-43ca-9abc-d46fff379380"
}
类别定义为:

public class SNSMessage {
    private String Type;
    private String MessageId;
    private String TopicArn;
    private String Subject;
    private String Message;
    private String Timestamp;
    private String SignatureVersion;
    private String Signature;
    private String SigningCertURL;
    private String UnsubscribeURL;
}

你知道为什么SNSMessage的所有字段都设置为null吗?

问题是,你的json属性使用的大写字母与pojo属性不同

这意味着您将
Type
作为json属性,并为getter检测到
Type

您需要像这样使用
@JsonProperty
注释:

@JsonProperty("Type") 
private String type;
...
// getters / setters for type

顺便说一句,如果您不想遵循java命名标准并拥有
Type
以及pojo属性,那么只需将
@JsonProperty
添加到属性中,而不使用args

就可以使用jackson的ObjectMapper吗?可能与Federico Piazza重复--jackson的ObjectMapper是底层实现,Ivan Pronin——没有回溯发生,也不是你提到的复杂结构问题。@DonHosek,那么你就不能
ObjectMapper mapper=new ObjectMapper();readValue(json、SNSMessage.class)