Solo intento crear un tipo anónimo de JSON sin saber nada sobre los parámetros con anticipación e interpretarlos por completo (posiblemente con sugerencias). es decir, ese valor "se ve" como una int, cadena o fecha.¿Cómo deserializar usando JSON.Net a un tipo anónimo?
La única forma que conozco hasta ahora es crear un tipo anónimo del que tenga preconocimiento. Consulte el método .DeserializeAnonymousType (...) a continuación.
¿Alguien puede hacer algo mejor que esto? Gracias.
var jsonString = "{\"user_id\": 1, \"user_type\": \"moderator\", \"name\": \"Fred\"}";
JToken root = JObject.Parse(jsonString);
var anonTemplate = new{user_id=0, user_type="", name="" };
var a = JsonConvert.DeserializeAnonymousType(root.ToString(), anonTemplate);
var b = JsonConvert.DeserializeObject<Object>(root.ToString()); // actually turns into a JsonObject which is something differet.
actualización
He descargado dynamicduck y estoy jugando con él un poco. ¿Será esta extraña idea dinámica de "envoltura" de la capacidad de Brian de la manera que necesito (serializable, etc.)?
http://weblogs.asp.net/britchie/archive/2010/08/05/json-net-dynamic-extensions.aspx
http://weblogs.asp.net/britchie/archive/2010/08/03/dynamicduck-duck-typing-in-a-dynamic-world.aspx
En caso de .NET 4 supongo que debe poder deserializar el objeto 'dynamic' y luego acceder explícitamente a las propiedades requeridas – sll
¿Cómo piensa consumir este objeto si no sabe qué parámetros tiene o se espera que haga? ¿tener? – KallDrexx
@sll: tengo un ejemplo? No contra tipos dinámicos Los estoy usando en alguna ocasión. En ese caso, mi siguiente pregunta sería cómo convertir de dinámico a un tipo anon. Estoy contento con cualquiera de las rutas porque el rendimiento no es un problema, sin embargo, * I * do * necesito un tipo anon en este caso (bibliotecas existentes). – sgtz