Cómo serializar correctamente la tupla como diccionario clave
Tengo la siguiente aplicación que muestra que la parte clave de un Diccionario no se envía aJsonConverter
, pero se llamaToString()
en. Este es un problema para mí ya que no puedo deserializar miJson
cuerda .
¿Algunas ideas?
class Program
{
static void Main(string[] args)
{
var coll = new Dictionary<Tuple<string,string>, string>();
coll.Add(Tuple.Create("key1", "KEY1"), "Value1");
coll.Add(Tuple.Create("key2", "KEY2"), "Value2");
string json = JsonConvert.SerializeObject(coll);
Dictionary<Tuple<string, string>, string> coll2;
Console.WriteLine(json);
//coll2 = JsonConvert.DeserializeObject<Dictionary<Tuple<string, string>, string>>(json);
// It throws an exception here
//foreach (var k in coll2)
//{
// Console.WriteLine("<{0}|{1}>",k.Key, k.Value);
//}
var t = Tuple.Create("key1", "key2");
Console.WriteLine(t.ToString());
string json2 = JsonConvert.SerializeObject(t);
Console.WriteLine(json2);
}
}
Salida:
{"(key1, KEY1)": "Value1", "(key2, KEY2)": "Value2"} (key1, key2)
{"Item1": "key1", "Item2": "key2"}
Pulse cualquier tecla para continuar . . .