using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
persons = new List<Person>
Line1 = "Infinite Loop 1",
Line1 = "Infinite Loop 2",
string json = JsonConvert.SerializeObject(obj, Formatting.Indented, new PersonConverter());
public string Name { get; set; }
public string Surname { get; set; }
public Address Address { get; set; }
public string Line1 { get; set; }
public string Line2 { get; set; }
class PersonConverter : JsonConverter
public override bool CanConvert(Type objectType)
return objectType == typeof(Person);
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
var pairs = JObject.FromObject(value)
.Where(p => p.Value is JValue)
.Select(p => p.Name + ":" + p.Value);
writer.WriteValue(string.Join(",", pairs));
public override bool CanRead
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
throw new NotImplementedException();