public static Optional<String> getString(final ObjectNode node, final String key) {
    return getValue(node, key)
        .filter(jsonNode -> validateType(jsonNode, JsonNodeType.STRING))
        .map(JsonNode::asText);
  }
Returns textual (string) value at {@code key}. See {@link #getValueAsString} for retrieving
non-textual values in string form.

@param node The {@code ObjectNode} from which the value will be extracted.
@param key The key corresponding to the value to extract.
@return The textual value at {@code key} if it exists.
config/src/main/java/org/hyperledger/besu/config/JsonUtil.java