public static Optional<String> getValue(final String json,
                                            final String key) {
        if (NullSafe.isBlankString(key) || NullSafe.isBlankString(json)) {
            return Optional.empty();
        } else {
            final Map<String, String> entries = getEntries(json, key);
            return Optional.ofNullable(entries.get(key));
        }
    }
Gets a value from the passed json that is a child of the root object.
Avoids having to parse the whole object if you only want to get one key.
Does not descend into child objects/arrays.
If the root is an array, returns an empty map.

@param json The json to parse.
@param key  The field to find the value for.
@return The value for the supplied key.
stroom-util/src/main/java/stroom/util/json/JsonUtil.java