get method
Implementation
dynamic get(String path) {
RegExp exp = RegExp(r"^(\w+)((\[[^$]+\])*)$");
List<String> arr = path.split(".");
List segs = [];
for (String seg in arr) {
RegExpMatch? match = exp.firstMatch(seg);
if (match == null) return null;
String name = match.group(1)!;
String property = match.group(2)!;
segs.add(name);
if (property.length > 0) {
for (var seg in segIterable(property)) {
if (seg.indexOf("[") > 0) {
segs.add(get(seg));
} else {
var val;
try {
val = jsonDecode(seg);
} catch (e) {
val = get(seg);
}
segs.add(val);
}
}
}
}
dynamic ret = _getPath(data, segs, 0);
if (ret == null) {
var parent = _parent;
while (parent != null) {
ret = _getPath(parent.data, segs, 0);
if (ret != null) break;
parent = parent._parent;
}
}
return ret;
}