我有一个 JsonString,例如
{"TestMessage":"This test is awesome"}
我有一组 POJO,例如
TestMessage、TestOther、TestSomethingElse
我需要的是可以检测 Json 字符串类型的东西,以便我可以使用正确的 Pojo 操作数据。
我可以对 XML 数据做类似的事情,如下所示
Unmarshaller u = MatchHelper.createMarshaller();
JAXBElement<AbstractMessageType> eventElement = (JAXBElement<AbstractMessageType>)
u.unmarshal(new StringReader(xmlMessage));
if (eventElement.getValue() instanceof TestMessage) {
TestMessage returnRecord = (TestMessage) eventElement.getValue();
return returnRecord;
}else if(eventElement.getValue() instanceof TestOther){
.....
.....
}
我尝试了以下方法,但它不起作用:
JsonNode eventNode = null;
try {
eventNode = this.mapper.readTree(message);
}catch (JsonParseException e){
log.error("Json Parse Exception - {}",e);
}
if(eventNode!= null && eventNode.isPojo()){
POJONode x = (POJONode)eventNode;
if(x.getPojo() instanceof TestMessage){
log.info("This is a Test Message");
TestMessage testMessage = this.mapper.readValue(message, TestMessage.class);
}
}