I am trying to use the Northwind OData service:
http://services.odata.org/V3/OData/OData.svc/Products?$format=json
and deserialize it to a collection of products:
using (var client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(new Uri(url)); ObservableCollection<Product> products = await response.Content.ReadAsAsync<ObservableCollection<Product>>(); }
But the serializer doesn't seem to like the odata.metadata
part and the fact that there are 2 odata.type
records there (not sure what they are).
Is there an easy way to do this?
Using Json.Net
using (var client = new HttpClient()) { var json = await client.GetStringAsync("http://services.odata.org/V3/OData/OData.svc/Products?$format=json"); var odata = JsonConvert.DeserializeObject<OData>(json); }
public class Value { [JsonProperty("odata.type")] public string Type { set; get; } public int ID { get; set; } public string Name { get; set; } public string Description { get; set; } public DateTime ReleaseDate { get; set; } public DateTime? DiscontinuedDate { get; set; } public int Rating { get; set; } public double Price { get; set; } } public class OData { [JsonProperty("odata.metadata")] public string Metadata { get; set; } public List<Value> Value { get; set; } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With