Έχω τον ακόλουθο κώδικα:
var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);
Η είσοδος στο responsecontent
είναι JSON, αλλά δεν αναλύεται σωστά σε αντικείμενο. Πώς πρέπει να το αποδιαταξινομήσω σωστά;
Υποθέτω ότι δεν χρησιμοποιείτε το Json.NET (πακέτο Newtonsoft.Json NuGet). Εάν ισχύει αυτό, τότε θα πρέπει να το δοκιμάσετε.
Διαθέτει τα ακόλουθα χαρακτηριστικά:
Κοιτάξτε το παράδειγμα παρακάτω. Σε αυτό το παράδειγμα, η κλάση JsonConvert
χρησιμοποιείται για τη μετατροπή ενός αντικειμένου σε και από JSON. Διαθέτει δύο στατικές μεθόδους για το σκοπό αυτό. Αυτές είναι οι SerializeObject(Object obj)
και 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);
Εάν το .NET 4 είναι διαθέσιμο σε εσάς, ελέγξτε: http://visitmix.com/writings/the-rise-of-json (archive.org)
Ακολουθεί ένα απόσπασμα από τον εν λόγω ιστότοπο:
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);
Αυτό το τελευταίο Console.WriteLine είναι πολύ γλυκό...