List of usage examples for com.fasterxml.jackson.core JsonTokenId ID_START_OBJECT
int ID_START_OBJECT
To view the source code for com.fasterxml.jackson.core JsonTokenId ID_START_OBJECT.
Click Source Link
From source file:org.apache.unomi.persistence.spi.PropertyTypedObjectDeserializer.java
@Override public Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { if (jp.getCurrentTokenId() != JsonTokenId.ID_START_OBJECT) { return super.deserialize(jp, ctxt); }// www .j ava2s . co m ObjectCodec codec = jp.getCodec(); TreeNode treeNode = codec.readTree(jp); Class<? extends Object> objectClass = null; if (treeNode instanceof ObjectNode) { ObjectNode root = (ObjectNode) treeNode; Iterator<Map.Entry<String, JsonNode>> elementsIterator = root.fields(); while (elementsIterator.hasNext()) { Map.Entry<String, JsonNode> element = elementsIterator.next(); String name = element.getKey(); if (fieldValuesToMatch.containsKey(name)) { Set<String> valuesToMatch = fieldValuesToMatch.get(name); for (String valueToMatch : valuesToMatch) { if (element.getValue().asText().matches(valueToMatch)) { objectClass = registry.get(name + "=" + valueToMatch); break; } } if (objectClass != null) { break; } } } if (objectClass == null) { objectClass = HashMap.class; } } else { } if (objectClass == null) { return super.deserialize(codec.treeAsTokens(treeNode), ctxt); } return codec.treeToValue(treeNode, objectClass); }