added recurse argument to json() methods