private Object jsonValueToNative(final JsonValue jsonValue) {
        if (jsonValue == null) {
            return null;
        }

        switch (jsonValue.getValueType()) {
            case NULL:
                return null;
            case FALSE:
                return false;
            case TRUE:
                return true;
            case NUMBER:
                final JsonNumber jsonNumber = (JsonNumber) jsonValue;
                if (jsonNumber.isIntegral()) {
                    return jsonNumber.longValue();
                } else {
                    return jsonNumber.doubleValue();
                }
            case STRING:
                return ((JsonString) jsonValue).getString();
            case OBJECT:
                return jsonValue.asJsonObject().toString();
            default:
                return jsonValue.toString();
        }
    }
Locate the value of the doc field by its full path
stroom-search/stroom-search-elastic/src/main/java/stroom/search/elastic/search/ElasticSearchTaskHandler.java