jsonAt function

Optional jsonAt(
  1. dynamic obj,
  2. String pointer
)

Gets obj sub-property value located by RFC 6901 JSON pointer. If type of obj is string it will be parsed to JSON object used for search. Returns Optional value holder.

Implementation

Optional<dynamic> jsonAt(dynamic obj, String pointer) {
  if (obj is String) {
    obj = convert_lib.jsonDecode(obj as String);
  }
  if (pointer.isEmpty) {
    return Optional<dynamic>.of(obj);
  }
  if (obj is Map || obj is List) {
    return _traverse(obj, _pointer(pointer));
  } else {
    return const Optional<dynamic>.absent();
  }
}