2009-12-03 15 views
7

He leído muchos tutoriales sobre cómo deserializar un objeto JSON a un objeto de un particular utilizando DataContractJsonSerializer. Sin embargo, me gustaría deserializar mi objeto a un Diccionario que consta de Cadenas, Arrays o Diccionarios, como System.Json lo hace con SilverLight cuando digo JsonObject.Parse (myJSONstring).Analizador JSON genérico en .NET/WPF?

¿Hay un equivalente a System.Json que pueda usar en mi proyecto WPF?

(a pocos antecedentes: Soy ir a buscar objetos JSON que tienen forma de mucha información, y sólo quiero usar un poco para llenar una matriz de cadenas)

Saludos

Nik

Respuesta

3

Eche un vistazo a la sección C# (ver abajo) de http://json.org/, tienen varias implementaciones de serializadores y analizadores que deberían ser de ayuda.

1

utilizo con éxito JayRock: http://jayrock.berlios.de/

public class JayRockMarshaller : IMarshaller 
{ 
    public ICollection Read(string text) 
    { 
     return (ICollection)new ImportContext().Import(new JsonTextReader(new StringReader(text))); 
    } 

    public string Write(ICollection objectToMarshal) 
    { 
     var writer = new StringWriter(); 
     new ExportContext().Export(objectToMarshal, new JsonTextWriter(writer)); 
     return writer.ToString(); 
    } 
} 

funciona tanto para diccionarios y listas como un sueño.

8

sólo tiene que utilizar de .NET integrado JavaScriptSerializer.

var jss = new JavaScriptSerializer(); 
var data = jss.Deserialize<dynamic>(jsonString); 

//"data" actually implements IDictionary<string, object> 
var p1 = data["Property1"]; 
var p2 = data["Property2"]; 

No se olvide de hacer referencia a "System.Web.Extensions"