Ich habe den folgenden Code:
var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);
Die Eingabe in responsecontent
ist JSON, aber sie wird nicht richtig in ein Objekt geparst. Wie sollte ich es richtig deserialisieren?
Ich nehme an, dass Sie nicht Json.NET (Newtonsoft.Json NuGet-Paket) verwenden. Wenn dies der Fall ist, dann sollten Sie es versuchen.
Es hat die folgenden Eigenschaften:
Sehen Sie sich das Beispiel unten an. In diesem Beispiel wird die Klasse JsonConvert
verwendet, um ein Objekt in und aus JSON zu konvertieren. Zu diesem Zweck verfügt sie über zwei statische Methoden. Diese sind SerializeObject(Object obj)
und DeserializeObject<T>(String json)
:
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
string json = JsonConvert.SerializeObject(product);
//{
// "Name": "Apple",
// "Expiry": "2008-12-28T00:00:00",
// "Price": 3.99,
// "Sizes": [
// "Small",
// "Medium",
// "Large"
// ]
//}
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
Wenn .NET 4 für Sie verfügbar ist, sehen Sie sich das an: http://visitmix.com/writings/the-rise-of-json (archive.org)
Hier ist ein Ausschnitt von dieser Seite:
WebClient webClient = new WebClient();
dynamic result = JsonValue.Parse(webClient.DownloadString("https://api.foursquare.com/v2/users/self?oauth_token=XXXXXXX"));
Console.WriteLine(result.response.user.firstName);
Die letzte Console.WriteLine ist ziemlich gut...