Ik heb de volgende code:
var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);
De input in responsecontent
is JSON, maar het wordt niet goed geparsed naar een object. Hoe moet ik het correct deserialiseren?
Ik ga ervan uit dat u geen Json.NET gebruikt (Newtonsoft.Json NuGet pakket). Als dit het geval is, dan moet u het proberen.
Het heeft de volgende mogelijkheden:
Kijk naar het voorbeeld hieronder. In dit voorbeeld wordt de JsonConvert
class gebruikt om een object te converteren van en naar JSON. Het heeft twee statische methodes voor dit doel. Dat zijn SerializeObject(Object obj)
en 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);
Als .NET 4 voor u beschikbaar is, bekijk dan: http://visitmix.com/writings/the-rise-of-json (archive.org)
Hier is een knipsel van die site:
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 laatste Console.WriteLine is wel leuk...