2009-08-11 10 views
0

Kennt jemand anständige Beispiele für benutzerdefinierte JavaScriptConverter-Klassen? Das einzige Beispiel der MSDN besteht darin, eine ListItemCollection zu konvertieren. Was ist mit benutzerdefinierten Klassen? Was ist, wenn die benutzerdefinierte Klasse eine Eigenschaft einer anderen benutzerdefinierten Klasse besitzt? Brauchen wir zwei Konverter? Alle Referenzen würden sehr geschätzt werden.Benutzerdefinierte JavaScriptConverter-Klassen

Danke!

Antwort

2

Sie sollten nur einen Konverter benötigen. Das Beispiel zeigt im Grunde, wie Sie den JavaScript-Konverter für beliebige benutzerdefinierte Klasse verwenden. Es muss keine Klasse sein, die Teil des Frameworks ist.

Es funktioniert auch für alle Eigenschaften einer benutzerdefinierten Klasse, die selbst eine benutzerdefinierte Klasse sind.

JSON betrachtet Objekte als Sammlungen von Schlüssel/Wert-Paaren. Das Dokumentationsbeispiel zeigt also, wie Sie Eigenschaften Ihres Objekts übernehmen und in Dictionaries (eine Art Schlüssel/Wert-Paarobjekt) einfügen. Wenn Sie einen geschachtelten benutzerdefinierten Typ benötigen, können Sie einfach Key/Value-Paare innerhalb Ihrer Hauptpaarsammlung Key/Value verschachteln.

Auch, wenn Sie sehr spezifische Bedürfnisse haben (integrierte Serialisierung wird entweder nicht funktionieren, oder gibt nicht aus, was Sie wollen), sollten Sie nur die JavaScriptSerializer Klasse verwenden.

JavaScriptSerializer serializer = new JavaScriptSerializer(); 
MyCustomObject obj = new MyCustomObject(); 
string json = serializer.Serialize(obj); 

MyCustomObject object2 = serializer.Deserialize<MyCustomObject>(json); 

Das sollte tun, was Sie in 95% der Fälle wollen.

Verwandte Themen