La désérialisation de JSON avec des tableaux imbriqués en C#

Je vais avoir du mal à essayer de désérialiser JSON ici:

{
    "response": {
        "numfound": 1,
        "start": 0,
        "docs": [
            {
                "enID": "9999",
                "startDate": "2013-09-25",
                "bName": "XXX",
                "pName": "YYY",
                "UName": [
                    "ZZZ"
                ],
                "agent": [
                    "BobVilla"
                ]
            }
        ]
    }
}

Les classes que j'ai créé pour ce sont les suivants:

public class ResponseRoot {
    public Response response;
}

public class Response {
    public int numfound { get; set; }
    public int start { get; set; }
    public Docs[] docs;
}

public class Docs {
    public string enID { get; set; }
    public string startDate { get; set; }
    public string bName { get; set; }
    public string pName { get; set; }
    public UName[] UName;
    public Agent[] agent;
}

public class UName {
    public string uText { get; set; }
}

public class Agent {
    public string aText { get; set; }
}

Mais, à chaque fois que j'appelle:

    ResponseRoot jsonResponse = sr.Deserialize<ResponseRoot>(jsonString);

jsonResponse finit par être nulle et le JSON n'est pas désérialisé. Je n'arrive pas à dire pourquoi mes classes trompe peut-être pour cette JSON.

En outre, je reçois cette erreur: Impossible de convertir l'objet de type 'System.Chaîne' de type 'UName'
Ne sont pas les UName et agent membres sur Docs censé être des tableaux de chaînes de caractères?
uname et de l'agent de ressembler à des Listes de chaînes dans l'échantillon json.
Avez-vous essayé json2csharp.com ?
json2csharp.com est vraiment g8 🙂 merci @L. B

OriginalL'auteur jymbo | 2013-11-21