JsonNET解码与列表

时间:2014-03-12 10:36:07

标签: json.net json

我使用Json.Net来反序列化对象Json数据。

这是我的Json

string datosContratos = {"Total":1,"Contrato":[{"Numero":1818,"CUPS":"ES003L0P","Direccion":"C. O  ","TextoCiudad":"MADRID","Tarifa":"2"}]}

我的课程是:

public class Contrato
{
    public int Numero;
    public String Cups;
    public String Direccion;
    public String TextoCiudad;
    public String Tarifa;
}

public class Contratos 
{
    public int Total { get; set; }
    public List<Contrato> ListaContratos { get; set; }
}

当我解除批评时:

Contratos contratos = JsonConvert.DeserializeObject<Contratos>(datosContratos);

结果是contratos.Total是正确的(在这种情况下为1)但ListaContratos为空,尽管它应该用数据填充。我没有看到问题!!!

2 个答案:

答案 0 :(得分:2)

您的类必须具有与JSON相同的变量名称,因此它应如下所示:

public class Contratos 
{
    public int Total { get; set; }
    public List<Contrato> Contrato { get; set; }
}

答案 1 :(得分:2)

JSON字符串中有一个名为Contrato的属性,而在您的班级中,Contrato的列表被声明为ListaContratos

将json字符串更改为

string datosContratos = {"Total":1,
                         "ListaContratos ":[{"Numero":1818,
                                             "CUPS":"ES003L0P",
                                             "Direccion":"C. O  ",
                                             "TextoCiudad":"MADRID",
                                             "Tarifa":"2"}]} 

将班级定义更改为

public class Contratos 
{
    public int Total { get; set; }
    public List<Contrato> Contrato { get; set; }
}