private static void setMap(String name, JsonNode node, Object obj, List<Method> setters) {
        //TODO this should try to match the map setters with the data types
        //for now, we're just doing <String,String>
        Map<String, String> val = new HashMap<>();
        Iterator<Map.Entry<String, JsonNode>> it = node.fields();
        while (it.hasNext()) {
            Map.Entry<String, JsonNode> e = it.next();
            val.put(e.getKey(), e
                    .getValue()
                    .textValue());
        }
        for (Method m : setters) {
            try {
                m.invoke(obj, val);
                return;
            } catch (ReflectiveOperationException e) {
                //swallow
            }
        }
        throw new IllegalArgumentException("can't find map setter for: " + name);
    }
See the notes @link{TikaJsonSerializer}.
<p>
This currently requires a setString() option on objects that have enum parameters.
tika-serialization/src/main/java/org/apache/tika/serialization/TikaJsonDeserializer.java