using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
var oRoles = new Roles();
oRoles.modules = new Module[] {
Permission=new string[]{ "Edit","View","Delete"}
Permission=new string[]{ "Edit","View","Delete","Update"}
var json = Newtonsoft.Json.JsonConvert.SerializeObject(oRoles);
Dictionary<string, List<string>> modules = new Dictionary<string, List<string>>();
modules.Add("Page-Profile", new List<string>() { "Edit", "View", "Delete"});
modules.Add("User", new List<string>() { "Edit", "View", "Delete", "Update"});
Console.WriteLine(JsonConvert.SerializeObject(modules));
Console.WriteLine("Hello World");
public Dictionary<string, List<string>> Modules {get; set;}
public class FlatternKeysConverter : JsonConverter
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
Module o = (Module)value;
JObject newObject = new JObject(new JProperty(o.Name, o.Permission));
newObject.WriteTo(writer);
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
throw new NotImplementedException("Unnecessary because CanRead is false. The type will skip the converter.");
public override bool CanRead
public override bool CanConvert(Type objectType)
public Module[] modules { get; set; }
modules = new Module[] { };
[JsonConverter(typeof(FlatternKeysConverter))]
public string Name { get; set; }
public string[] Permission { get; set; }