Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "1": {
- "orders.orderid":"538",
- "entity.customerid":"109",
- "entity.entityid":"538",
- },
- "2": {
- "orders.orderid":"536",
- "entity.customerid":"108",
- "entity.entityid":"536",
- },
- "recsindb":"2",
- "recsonpage":"2"
- }
- [JsonConverter(typeof(CustomConverter))]
- public class RootObject
- {
- public Dictionary<string, Order> Orders { get; set; }
- public string RecsInDB { get; set; }
- public string RecsOnPage { get; set; }
- }
- public class Order
- {
- [JsonProperty("orders.orderid")]
- public string OrderID { get; set; }
- [JsonProperty("entity.customerid")]
- public string CustomerID { get; set; }
- [JsonProperty("entity.entityid")]
- public string EntityID { get; set; }
- }
- class CustomConverter : JsonConverter
- {
- public override bool CanConvert(Type objectType)
- {
- return (objectType == typeof(RootObject));
- }
- public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
- {
- JObject jo = JObject.Load(reader);
- RootObject obj = new RootObject();
- obj.RecsInDB = jo["recsindb"].ToString();
- obj.RecsOnPage = jo["recsonpage"].ToString();
- obj.Orders = new Dictionary<string, Order>();
- foreach (JProperty prop in jo.Properties())
- {
- if (prop.Name != "recsindb" && prop.Name != "recsonpage")
- {
- obj.Orders.Add(prop.Name, prop.Value.ToObject<Order>());
- }
- }
- return obj;
- }
- public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
- {
- throw new NotImplementedException();
- }
- }
- RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
- class Program
- {
- static void Main(string[] args)
- {
- string json = @"
- {
- ""1"": {
- ""orders.orderid"":""538"",
- ""entity.customerid"":""109"",
- ""entity.entityid"":""538"",
- },
- ""2"": {
- ""orders.orderid"":""536"",
- ""entity.customerid"":""108"",
- ""entity.entityid"":""536"",
- },
- ""recsindb"":""2"",
- ""recsonpage"":""2""
- }";
- RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
- Console.WriteLine("RecsInDB: " + obj.RecsInDB);
- Console.WriteLine("RecsOnPage: " + obj.RecsOnPage);
- foreach (var kvp in obj.Orders)
- {
- Console.WriteLine("Order #" + kvp.Key);
- Console.WriteLine(" OrderID " + kvp.Value.OrderID);
- Console.WriteLine(" CustomerID " + kvp.Value.CustomerID);
- Console.WriteLine(" EntityID " + kvp.Value.EntityID);
- }
- }
- }
- RecsInDB: 2
- RecsOnPage: 2
- Order #1
- OrderID 538
- CustomerID 109
- EntityID 538
- Order #2
- OrderID 536
- CustomerID 108
- EntityID 536
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement