using System.Collections.Generic;
public static void Main()
var source = new Source();
source.Items.Add(("a", "b"));
source.Items.Add(("c", "d"));
var settings = new JsonSerializerSettings{Converters = {new TupleConverter()}};
var json = JsonConvert.SerializeObject(source, settings);
public List<(string, string)> Items { get; } = new List<(string, string)>();
public class TupleConverter : JsonConverter<(string, string)>
public override (string, string) ReadJson(JsonReader reader, Type objectType, (string, string) existingValue, bool hasExistingValue, JsonSerializer serializer)
throw new NotImplementedException();
public override void WriteJson(JsonWriter writer, (string, string) value, JsonSerializer serializer)
writer.WriteStartObject();
writer.WritePropertyName(value.Item1);
writer.WriteValue(value.Item2);