using System.Collections.Generic;
[JsonObject(IsReference = true)]
public string Id {get; set;}
public string Name {get; set;}
public string Description {get; set;}
public string WontGetDeserialized {get; private set;}
public class GroupCollection
public IList<Group> Groups {get; set;}
public static void Main()
var group1 = new Group() { Id = "1", Name = "FirstGroup", Description = "This is the first group" };
var group2 = new Group() { Id = "2", Name = "SecondGroup", Description = "This is the second group" };
var groupList = new List<Group> { group1, group1, group2, group2, group2};
var groupCollection = new GroupCollection {Groups = groupList};
Console.WriteLine(JsonConvert.SerializeObject(groupCollection,Formatting.Indented));
public static void MainTestGroup()
string json = "{\"Id\": \"123\", \"WontGetDeserialized\": \"YAAAAAAAA\" }";
var grp = JsonConvert.DeserializeObject<Group>(json);
Console.WriteLine("Group Id : " + grp.Id);
Console.WriteLine("Group WontGetDeserialized : " + grp.WontGetDeserialized);