readJsonOr static method
Parses a JSON string into a Map object.
If the input string contains a JSON object, it returns that object as a single map in a list.
If the input string contains a JSON array with at least one object, it returns all of the objects as maps in a list.
Otherwise, it returns null.
May throw a FormatException if the input string is not valid JSON.
Implementation
static List<Map<String, dynamic>>? readJsonOr(String json) {
if (json.isEmpty) return null;
dynamic jsonObj = jsonDecode(json);
if (jsonObj is Map<String, dynamic>) {
return [jsonObj];
} else if (jsonObj is List<dynamic>) {
List<Map<String, dynamic>> toReturn = [];
for (dynamic object in jsonObj) {
if (object is Map<String, dynamic>) {
toReturn.add(object);
}
}
if (toReturn.isNotEmpty) return toReturn;
}
return null;
}