¿Cómo iba a leer en un archivo 'anidada' JSON con 'DataContractJsonSerializer' en C # .NET (teléfono win7)?

StackOverflow https://stackoverflow.com/questions/4477616

Pregunta

Tengo un problema en el caso de mi archivo JSON es similar al siguiente

{ "Números": "45387", "Palabras": "cubos espaciales"}

puedo leerlo muy bien, sin embargo si se ve como esto:

{ "principal": { "Números": "45387", "palabras": "cubos espaciales"}, España "Algo": { "Números": "12345", "Palabras": "Kransky"}}

No me sale de vuelta información. No tengo idea de cómo cambiar entre Principal y algo! Carga de un JSON con esta información 'anidada' utilizando este código,

var ser = new DataContractJsonSerializer(typeof(myInfo));

var info = (myInfo)ser.ReadObject(e.Result); 

// La clase siendo utilizando para mantener mi información

[DataContract] 
public class myInfo 
{ 
    [DataMember(Name="Numbers")] 
    public int number 
    { get; set; } 

    [DataMember(Name="Words")] 
    public string words 
    { get; set; } 
} 

Hace que la clase de volver vaciar.
He intentado añadir el nombre del grupo a DataContract por ejemplo. [DataContract, Name = "principal"], pero esto todavía hace que los valores de las clases para estar vacío.
También he intentado añadir "principal" para el serializador overloader por ejemplo. Ser var = new DataContractJsonSerializer (typeof (MyInfo), "principal");
Esto provoca un error: Esperando elemento 'principal' del espacio de nombres '' .. Se encontró 'Elemento' con el nombre de 'root', espacio de nombres ''
. Yo prefiero sólo tiene que utilizar el lector JSON suministrado. He mirado en json.NET pero he encontrado la documentación a ser pesados ??en la escritura de JSON y con escasa información sobre la lectura. Seguramente me estoy perdiendo algo simple aquí!

¿Fue útil?

Solución

Se podría añadir una clase contenedora:

[DataContract]
public class Wrapper
{
    [DataMember]
    public myInfo Main { get; set; }

    [DataMember]
    public myInfo Something { get; set; }
}

Ahora usted podría deserializar la parte posterior JSON a esta clase de contenedor y el uso de las dos propiedades para acceder a los valores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top