getNested static method

dynamic getNested(
  1. dynamic input,
  2. String path
)

Implementation

static dynamic getNested(dynamic input, String path) {
  if (path.isEmpty) return input;
  final parts = path.split('.');
  if (parts.isEmpty) return input;

  final key = parts.first;
  final restPath = parts.sublist(1).join('.');

  // Try to parse key as int for List index access
  final index = int.tryParse(key);

  if (input == null) return null;

  // Handle Map case
  if (input is Map<String, dynamic> && index == null) {
    if (!input.containsKey(key)) return null;
    if (restPath.isEmpty) return input[key];
    return getNested(input[key], restPath);
  }
  // Handle List case
  else if (input is List && index != null && index >= 0 && index < input.length) {
    if (restPath.isEmpty) return input[index];
    return getNested(input[index], restPath);
  }
  // Leaf or invalid access
  return null;
}