https://www.newtonsoft.com/json/help/html/SerializationAttri...
I would avoid using dynamic (I believe underneath it is basically the same as the Dictionary<T, U> anyway, howeve r I don't really care to look it up).
Also regarding var. It is best IMO to use var when evident i.e. If the var right hand side is obvious what the type is use var, if it isn't use the Type name.
e.g.
When you should use var (it is evident from the right hand side)
var name = "Joe Bloggs";
vs when it isn't evident: var myVariables = _service.SomeMethod();
It allows the code to be better read without the IDE. However obviously it is up to you.