readJsonFile method
dynamic
readJsonFile(})
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;
}