anchor.diff:      end;
   get(Key,DataObject,Default) ->
       ?MODULE:get(Key,decode(DataObject), Default).
  +
  +-spec get_deep(data_object(),key(),Default, list()) -> list() | Default when Default :: term().
  +get_deep([], _, _, []) -> undefined;
  +get_deep([], _, _, Acc) -> Acc;
  +get_deep([Obj | Rest],Key,Default,Acc) when is_list(Obj) ->
  +    case proplists:get_value(Key,Obj,Default) of
  +        Default -> get_deep(Rest,Key,Default,Acc);
  +        Value -> get_deep(Rest,Key,Default,Acc ++ [Value])
  +    end;
  +get_deep(Obj,Key,Default,_) ->
  +    proplists:get_value(Key,Obj,Default).
   
   %% @doc Add a value to a IMEM Json data object
   %% Should Key already exist, old value will be replaced
  
positive.code:         , {"map_custom_default"
             , ?_assertEqual(test, ?MODULE:get(<<"sme">>,?TEST_MAP,test))}
          , {"json_custom_default"
             , ?_assertEqual(test, ?MODULE:get(<<"sme">>,?TEST_JSON,test))}]}.
  
  keys_test_() ->
      Keys = [<<"surname">>,<<"name">>,<<"foo">>
  
negative.code:         {error, Reason} -> {error, Reason};
          MatchedObject -> encode(MatchedObject)
      end;
  eval(Tree,Binds) ->
      case jpparse:foldbu(fun jpp_walk/3
                          , Binds
                          , Tree) of
  