valueAsString<T extends String?> method

T valueAsString<T extends String?>(
  1. K key, {
  2. T onError(
    1. JsonParserError err
    )?,
  3. T onMissing()?,
  4. bool allowJson = false,
  5. bool allowHexEncoding = false,
  6. StringEncoding? bytesEncoding = StringEncoding.utf8,
  7. bool acceptSnakeCase = false,
  8. bool acceptCamelCase = false,
})

Implementation

T valueAsString<T extends String?>(
  K key, {
  T Function(JsonParserError err)? onError,
  T Function()? onMissing,
  bool allowJson = false,
  bool allowHexEncoding = false,
  StringEncoding? bytesEncoding = StringEncoding.utf8,

  /// Also accepts the snake_case or camel_case version of [key] when looking up JSON fields.
  /// Only applicable when [K] is `String`.
  bool acceptSnakeCase = false,
  bool acceptCamelCase = false,
}) {
  try {
    final value = _checkItem<T>(
      key,
      onMissing,
      acceptSnakeCase,
      acceptCamelCase,
    );
    if (value == null) return value as T;

    return JsonParser.valueAsString<T>(
      value,
      allowJson: allowJson,
      allowHexEncoding: allowHexEncoding,
      bytesEncoding: bytesEncoding,
    );
  } on JsonParserError catch (e) {
    if (onError != null) return onError(e);
    rethrow;
  }
}