2009-12-03 11 views
7

Ho letto molti tutorial su come deserializzare un oggetto JSON su un oggetto di un particolare utilizzando DataContractJsonSerializer. Tuttavia, mi piacerebbe deserializzare il mio oggetto in un dizionario composto da stringhe, matrici o dizionari, come System.Json con SilverLight quando dico JsonObject.Parse (myJSONstring).Generatore di parser JSON in .NET/WPF?

Esiste un equivalente a System.Json che posso utilizzare nel mio progetto WPF?

(a pochi sfondo: Sono recupero di oggetti JSON che hanno modo di tanto informazioni, e voglio solo usare un po 'di compilare un array di stringhe)

Acclamazioni

Nik

risposta

3

Dai un'occhiata alla sezione C# (scoll sul fondo) di http://json.org/, hanno diverse implementazioni di serializzatori e parser che dovrebbero aiutare.

1

io uso con successo 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(); 
    } 
} 

funziona sia per i dizionari e liste come un sogno.

8

Proprio l'utilizzo di .NET integrato 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"]; 

Non dimenticare di fare riferimento a "System.Web.Extensions"

Problemi correlati