jsonDecodeSafe static method

  1. @useResult
dynamic jsonDecodeSafe(
  1. String? jsonString
)

Safely decodes a JSON string, returning null on error.

Implementation

@useResult
static dynamic jsonDecodeSafe(String? jsonString) {
  final String? trimmed = jsonString?.trim();
  if (trimmed == null || trimmed.isEmpty || trimmed == 'null') return null;
  if (!isJson(trimmed)) return null;

  try {
    return dc.jsonDecode(trimmed);
  } on FormatException catch (e, stackTrace) {
    // ignore: saropa_lints/avoid_print_error -- intentional diagnostic logging; debugPrint is stripped in release builds
    debugPrint('JsonUtils.jsonDecodeSafe failed: $e\n$stackTrace');

    return null;
  }
}