using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
MyCaseRequest data = new MyCaseRequest()
ExpirationDateTime = "2016-07-14T00:00:00.000Z",
Signatories = new List<SignatoryRequest>
new MyRequest() { Type = MyType.Comp, Id = "11111" },
new MyRequest() { Type = MyType.Per, Id = "2222" }
Documents = new SortedList<string, ThingsRequest>()
{"0" , new ThingsRequest() { Name = "Test", Description = "Short description about", Length = 4523 }},
{"1" , new ThingsRequest() { Name = "Test1", Description = "short description about", Length = 56986 }}
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.Converters.Add(new DictionaryToValuesArrayConverter());
settings.Formatting = Formatting.Indented;
string json = JsonConvert.SerializeObject(data, settings);
public string Name { get; set; }
public string ExpirationDateTime { get; set; }
public List<SignatoryRequest> Signatories { get; set; }
public SortedList<string, ThingsRequest> Documents { get; set; }
class MyRequest : SignatoryRequest
public MyType Type { get; set; }
public string Id { get; set; }
enum MyType { Comp, Per }
public string Name { get; set; }
public string Description { get; set; }
public int Length { get; set; }
class DictionaryToValuesArrayConverter : JsonConverter
public override bool CanConvert(Type objectType)
return typeof(IDictionary).IsAssignableFrom(objectType);
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
IDictionary dict = (IDictionary)value;
JArray array = JArray.FromObject(dict.Values);
public override bool CanRead
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
throw new NotImplementedException();