using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
public string prop1 {get;set;}
public string prop2 {get;set;}
public int prop3 {get;set;}
public List<Dictionary<string, int>> prop4 {get;set;}
public Dictionary<string, Info> Items {get;set;}
public static void Test()
var root = JsonConvert.DeserializeObject<Response>(json);
var json2 = JsonConvert.SerializeObject(root, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
Console.WriteLine("Deserialized and re-serialized {0}:", root);
Console.WriteLine(json2);
public static void Main()
Console.WriteLine("Environment version: " + Environment.Version);
Console.WriteLine("Json.NET version: " + typeof(JsonSerializer).Assembly.FullName);
Console.WriteLine("Failed with unhandled exception: ");