API: ensure read_json closes file handle
Use context manager instead of closing manually with `self.close` to ensure file always closes.

Not sure if this should have a whatsnew entry and where.
> easier to review with the "hide whitespace" option

Nice one, I didn't know about that one. It does indeed makes changes that are mostly changing the indention level easier to review. Yeah I don't think this needs a whatsnew entry - leaving open for a bit in case others have comments / disagree Could note in the `Other API changes` that `read_json` will always close the file if there was an error in reading the file? Thanks for the comments.

I've added a whatsnew entry + updated the PR to also improve the handling of closing files in `JsonReader.__next__` also. > Would it be easy to test that the files handles are closed when an exception is encountered?

not sure, maybe serving a malformed file (though haven't checked if that is tested already or maybe caught in the init)? error looks unrelated ("ERROR: Could not find a version that satisfies the requirement setuptools==59.2.0") Thanks @topper-123. If you have any inspirations on how to test that files are closed on exceptions happy to have a follow up