{
"customer": {
"ssoId":"B56789",
"brand":"123-reg",
"forename":"John",
"surname":"Doe",
"title":"Mr",
"companyName":"Unilever",
"primaryEmail":"[email protected]",
"currency":"$",
"language":"English",
"vatNumber":"D4531234",
"vatCode":"12B6",
"ipAddress":"127.0.0.1"
}
}
Das ist meine JSON-Datei Ich versuche, mit Apache Camel zu einem POJO zu entlarven, aber es wirft immer diesen Fehler! Wenn ich @JsonIngoreProperties
hinzufüge, wird ein Null-Objekt zurückgegeben, ohne den POJO zu füllen.Parsing Json zu Java
@Data
@JsonInclude(NON_EMPTY)
public final class Customer{
@JsonProperty(value = "ssoId", required = true)
private String ssoId;
@JsonProperty(value = "brand", required = true)
private String brand;
@JsonProperty(value = "forename", required = true)
private String forename;
//......
}
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "customer" (class com.heg.esb.model.Customer), not marked as ignorable (17 known properties: "addresses", "phones", "brand", "companyName", "ssoId", "ipAddress", "currency", "vatNumber", "vatCode", "title", "primaryEmail", "surname", "lastVerificationDate", "forename", "lastModifiedDate", "createdDate", "language"]) at [Source: [email protected]; line: 2, column: 16] (through reference chain: com.heg.esb.model.Customer["customer"]) at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51) at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:839) at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1045) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1352) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1330) at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:264) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3736) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2796) at org.apache.camel.component.jackson.JacksonDataFormat.unmarshal(JacksonDataFormat.java:173) at org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:69) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) at org.apache.camel.processor.Pipeline.process(Pipeline.java:121) at org.apache.camel.processor.Pipeline.process(Pipeline.java:83) at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:117) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:112)
Es sieht so aus, dass es ein 'Kunden'-Feld in der 'Kunden'-Klasse gibt, ohne mit @JsonProperty oder @JsonIgnore versehen zu sein? – Wilson
Das soll keine Eigenschaft sein, aber was ich in meinem Jsonpath innerhalb von Camel Blueprint verwenden muss, um sich mit POJO zu identifizieren, sollte es marschallieren. – Sammy65
Oh! Ich habe gerade bemerkt, dass es doppelt markiert war. Nun, es war nicht so, wie ich den Link angesehen hatte, bevor ich ihn gepostet habe. Ich fragte, wie man die JSON-Datei oben in POJO umwandeln könnte, da JSON sich vor den geschweiften Klammern über den äußeren "Kunden" beschwerte, weil es eine Wrapper-Klasse benötigte, um zu verstehen, was mit der Datei zu tun ist. Ich benutzte diese Website, um meine Herausforderung zu lösen "http://www.jsonschema2pojo.org/" – Sammy65