Estoy usando C# .NET 4.0 para analizar un JSON en un objeto personalizado. Estoy usando JavaScriptSerializer.Deserialize para asignarlo a una clase que escribí. El problema es, los pares de nombre/valor del JSON no son estáticas y varían en función del argumento isChain, como se ve en este fragmento JSON (mejor enlace en la parte inferior):Deserialización de un JSON con pares de nombre/valor de variable en el objeto en C#
{
"STATE_WALK_LEFT":{
"isChain":"1",
"x":"1"
},
"STATE_WALK_LEFT_0":{
"x":"0"
},
"STATE_WALK_LEFT_1":{
"x":"40"
},
"STATE_WALK_LEFT_2":{
"x":"80"
},
"STATE_WALK_RIGHT":{
"isChain":"0"
},
"STATE_RUN_LEFT":{
"isChain":"0"
}
}
Las cadenas pueden tener cualquier lugar de _STATE_0 a _STATE_25 entradas en las cadenas ¿Hay alguna manera de almacenar estos datos, así que no tengo que escribir 12 * 26 clases vacías, así:
public StateWalkLeft0 STATE_WALK_LEFT { get; set; }
public StateWalkLeft0 STATE_WALK_LEFT_0 { get; set; }
public StateWalkLeft1 STATE_WALK_LEFT_1 { get; set; }
public StateWalkLeft2 STATE_WALK_LEFT_2 { get; set; }
public StateWalkLeft3 STATE_WALK_LEFT_3 { get; set; }
¿Hay una biblioteca o alguna otra forma que podría utilizar para analizar parcialmente única la STATE_0 , STATE_1, etc. campos? ¿Podría sugerir una forma de agregar estos pares JSON recientemente agregados?
Editado para aclarar: Para tener una idea de lo que estoy trabajando con, aquí está la clase derivada de los JSONs:
Check out my full Class to get an idea of what the JSONs contain
Básicamente, sólo necesito una manera de almacenar estas cadenas implementadas recientemente en esta clase de alguna manera para el procesamiento. Todas esas clases/propiedades se generan a partir de estos JSON.
"Prefiero no usar recursividad, libs de terceros o deserializar en var/dynamic." buena suerte para encontrar una solución dentro de esos límites –
Podrías hacer esto fácilmente con [Json.NET] (http://json.codeplex.com/) – casperOne
@casperOne +1, pero haría una sugerencia de usando [fastJSON] (http://www.codeproject.com/Articles/159450/fastJSON) sobre eso. Json.NET es muy lento y grande y puede ser difícil realizar modificaciones debido a su complejidad. – erodewald