2010-10-22 15 views
6

Ich versuche, eine einfache JSON-Manipulation auf dem Windows Phone 7 durchzuführen. JSON.NET sieht gut aus, aber VS2010 beschwert sich, wenn ich versuche, einen Verweis darauf hinzuzufügen.JSON unter Windows Phone 7 analysieren

Es ließ mich die Silverlight-DLL hinzufügen, aber warnte mich, dass es in seltsamen App-Verhalten führen könnte, so dass ich skeptisch bin, dass es tatsächlich funktionieren würde.

This sieht aus wie eine gute Möglichkeit Serialisierung und Deserialisierung von Daten, aber ich muss tatsächlich abfragen. Könnte ich einfach diese Technik verwenden, um es zu einem IQueryable zu serialisieren, dann LINQ verwenden? Kann ich irgendwie JSON in XML konvertieren und LINQ verwenden?

Oder sollte ich selbst hacky und traurige String-Manipulation tun?

aktualisieren:

 // works 
     DataContractSerializer ser1 = new DataContractSerializer(); 

     // the type or namespace 'DataContractJsonSerializer' could not be found ... 
     DataContractJsonSerializer ser = new DataContractJsonSerializer(); 

Update 2: Aus irgendeinem Grund kann ich nicht einmal VS2010 DataContractJsonSerializer zu erkennen, erhalten folgendes auch beklagt:

using System.Runtime.Serialization.Json; 

Der Fehler:

The type or namespace name 'Json' does not exist in the namespace 'System.Runtime.Serialization' (are you missing an assembly reference?)

Mache ich etwas falsch oder wird JSON in wp7 nicht unterstützt?

Update 3: Sieht aus wie DataContractJsonSerializer ist im Namespace System.Servicemodel.Web.

Update 4: Ich habe einen Verweis auf die Silverlight JSON.NET-DLL hinzugefügt, und es scheint für jetzt gut zu funktionieren. Daumen drücken.

+0

Nur neugierig; Wie entwickelt sich WP7? – Znarkus

+0

Warum verwenden Sie JSON.Net immer noch, wenn Sie DataContractJsonSerializer in System.ServiceModel.Web gefunden haben? Irgendwelche Profis? – codeclash

Antwort

5

Ja, wie pro Ihre Update 3 (fast):
DataContractJsonSerializer ist in der System.Servicemodel.Web.dll Montage, sondern im System.Runtime.Serialization.Json Namespace.

Es hat ziemlich viele Leute erwischt.

Froh, dass Sie scheinen, das funktioniert zu haben.

0

Wenn Sie das DataContract-Attribut verwenden, befindet sich dies außerdem im System.Runtime.Serialization-Namespace und in System.Runtime.Serialization.dll Assembly.