Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. {
  2. "1": {
  3. "orders.orderid":"538",
  4. "entity.customerid":"109",
  5. "entity.entityid":"538",
  6. },
  7. "2": {
  8. "orders.orderid":"536",
  9. "entity.customerid":"108",
  10. "entity.entityid":"536",
  11. },
  12. "recsindb":"2",
  13. "recsonpage":"2"
  14. }
  15.  
  16. [JsonConverter(typeof(CustomConverter))]
  17. public class RootObject
  18. {
  19. public Dictionary<string, Order> Orders { get; set; }
  20. public string RecsInDB { get; set; }
  21. public string RecsOnPage { get; set; }
  22. }
  23.  
  24. public class Order
  25. {
  26. [JsonProperty("orders.orderid")]
  27. public string OrderID { get; set; }
  28.  
  29. [JsonProperty("entity.customerid")]
  30. public string CustomerID { get; set; }
  31.  
  32. [JsonProperty("entity.entityid")]
  33. public string EntityID { get; set; }
  34. }
  35.  
  36. class CustomConverter : JsonConverter
  37. {
  38. public override bool CanConvert(Type objectType)
  39. {
  40. return (objectType == typeof(RootObject));
  41. }
  42.  
  43. public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
  44. {
  45. JObject jo = JObject.Load(reader);
  46. RootObject obj = new RootObject();
  47. obj.RecsInDB = jo["recsindb"].ToString();
  48. obj.RecsOnPage = jo["recsonpage"].ToString();
  49. obj.Orders = new Dictionary<string, Order>();
  50. foreach (JProperty prop in jo.Properties())
  51. {
  52. if (prop.Name != "recsindb" && prop.Name != "recsonpage")
  53. {
  54. obj.Orders.Add(prop.Name, prop.Value.ToObject<Order>());
  55. }
  56. }
  57. return obj;
  58. }
  59.  
  60. public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
  61. {
  62. throw new NotImplementedException();
  63. }
  64. }
  65.  
  66. RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
  67.  
  68. class Program
  69. {
  70. static void Main(string[] args)
  71. {
  72. string json = @"
  73. {
  74. ""1"": {
  75. ""orders.orderid"":""538"",
  76. ""entity.customerid"":""109"",
  77. ""entity.entityid"":""538"",
  78. },
  79. ""2"": {
  80. ""orders.orderid"":""536"",
  81. ""entity.customerid"":""108"",
  82. ""entity.entityid"":""536"",
  83. },
  84. ""recsindb"":""2"",
  85. ""recsonpage"":""2""
  86. }";
  87.  
  88. RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
  89.  
  90. Console.WriteLine("RecsInDB: " + obj.RecsInDB);
  91. Console.WriteLine("RecsOnPage: " + obj.RecsOnPage);
  92. foreach (var kvp in obj.Orders)
  93. {
  94. Console.WriteLine("Order #" + kvp.Key);
  95. Console.WriteLine(" OrderID " + kvp.Value.OrderID);
  96. Console.WriteLine(" CustomerID " + kvp.Value.CustomerID);
  97. Console.WriteLine(" EntityID " + kvp.Value.EntityID);
  98. }
  99. }
  100. }
  101.  
  102. RecsInDB: 2
  103. RecsOnPage: 2
  104. Order #1
  105. OrderID 538
  106. CustomerID 109
  107. EntityID 538
  108. Order #2
  109. OrderID 536
  110. CustomerID 108
  111. EntityID 536
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement