C# – Is it possible to deserialize JSON to List> with JSON.Net

c++genericsjson.netserialization

I have a class:

[Serializable]
    public class KVPair<TKey, TValue>
    {
        public TKey Key { get; set; }
        public TValue Value { get; set; }

        public KVPair(TKey k, TValue v)
        {
            Key = k;
            Value = v;
        }
    }    

that I create:

List<KVPair<string,string>> kvPairs;

Using the JSON.Net library I can serialize the list and yield:

"[{\"Key\":\"Two\",\"Value\":\"2\"},{\"Key\":\"One\",\"Value\":\"1\"}]"

When I de-serialize this string back to List> I get the correct count of objects but they are null. Any suggestions would be great help.

Best Solution

I'm guessing that you might need to add a parameterless constructor:

public KVPair() {
}

Perhaps JSON.net doesn't know how to construct your object so it silently fails.