I think this is already solved with above solutions, but if you are looking for a very clean approach to this where only a single line of code does your job then you might wanna check this out:
Its open, scalable and provides enough utilities for most of the requirements. Define a class as you normally would, rest of things are taken care by the library.
https://github.com/anirudha-stack/JsonScrutinize
https://www.nuget.org/packages/JsonScrutinize
Nested json is supported, you can get Mismatched type keys, null keys and missing keys from this.