readJsonFile method

dynamic readJsonFile(
  1. String? path, {
  2. required void onJsonIsList(),
  3. String warningMessage = 'Format json not valid!',
})

Reads and parses JSON from a file path

path - File path to read from onJsonIsList - Callback when JSON is an array warningMessage - Warning message for invalid JSON Returns parsed JSON data or null if invalid

Implementation

dynamic readJsonFile(
  String? path, {
  required void Function() onJsonIsList,
  String warningMessage = 'Format json not valid!',
}) {
  if (path == null) {
    return <String, dynamic>{};
  }

  // Check if file exists, if not return empty map as default
  if (!exists(path)) {
    StatusHelper.warning(
        'JSON file not found: $path, using default value {}');
    return <String, dynamic>{};
  }

  final jsonString = read(path).join('\n');
  dynamic response;

  try {
    response = jsonDecode(jsonString);
    if (response is List) {
      onJsonIsList();
      response = response.first;
    }
  } catch (e) {
    StatusHelper.warning(warningMessage);
    return {};
  }

  if (response is! Map) {
    StatusHelper.warning(warningMessage);
    return {};
  }

  return response;
}