C#JsonConvert.DeserializeObject为json对象数组返回空值



我有一个JSON字符串,我想在C#对象中对其进行反序列化

JSON是一个对象数组,包含五个没有名称的相同对象。

当我尝试使用以下命令进行反序列化时:

JsonConvert.DeserializeObject<List<Model.AuxilioEmergencial>>(restResponse.Content);

我得到了一个包含五个对象的列表,但它们都为空:Visual Studio调试器的打印

看看JSON:

[
{
"id": 1,
"mesDisponibilizacao": "06/2020",
"beneficiario": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"multiploCadastro": false,
"cpfFormatado": "***.862.400-**"
},
"responsavelAuxilioEmergencial": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"nomeSemAcento": "JONI MITCHELL",
"cpfFormatado": "***.862.400-**"
},
"municipio": 
{
"codigoIBGE": "123",
"nomeIBGE": "LAST TIME I SAW RICHARD",
"nomeIBGEsemAcento": "LAST TIME I SAW RICHARD",
"pais": "BRASIL",
"uf": 
{
"sigla": "RS",
"nome": "RIO GRANDE DO SUL"
}
},
"valor": 10
},
{
"id": 2,
"mesDisponibilizacao": "06/2020",
"beneficiario": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"multiploCadastro": false,
"cpfFormatado": "***.862.400-**"
},
"responsavelAuxilioEmergencial": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"nomeSemAcento": "JONI MITCHELL",
"cpfFormatado": "***.862.400-**"
},
"municipio": 
{
"codigoIBGE": "123",
"nomeIBGE": "LAST TIME I SAW RICHARD",
"nomeIBGEsemAcento": "LAST TIME I SAW RICHARD",
"pais": "BRASIL",
"uf": 
{
"sigla": "RS",
"nome": "RIO GRANDE DO SUL"
}
},
"valor": 10
},
{
"id": 3,
"mesDisponibilizacao": "06/2020",
"beneficiario": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"multiploCadastro": false,
"cpfFormatado": "***.862.400-**"
},
"responsavelAuxilioEmergencial": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"nomeSemAcento": "JONI MITCHELL",
"cpfFormatado": "***.862.400-**"
},
"municipio": 
{
"codigoIBGE": "123",
"nomeIBGE": "LAST TIME I SAW RICHARD",
"nomeIBGEsemAcento": "LAST TIME I SAW RICHARD",
"pais": "BRASIL",
"uf": 
{
"sigla": "RS",
"nome": "RIO GRANDE DO SUL"
}
},
"valor": 40
},
{
"id": 4,
"mesDisponibilizacao": "06/2020",
"beneficiario": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"multiploCadastro": false,
"cpfFormatado": "***.862.400-**"
},
"responsavelAuxilioEmergencial": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"nomeSemAcento": "JONI MITCHELL",
"cpfFormatado": "***.862.400-**"
},
"municipio": 
{
"codigoIBGE": "123",
"nomeIBGE": "LAST TIME I SAW RICHARD",
"nomeIBGEsemAcento": "LAST TIME I SAW RICHARD",
"pais": "BRASIL",
"uf": 
{
"sigla": "RS",
"nome": "RIO GRANDE DO SUL"
}
},
"valor": 40
},
{
"id": 5,
"mesDisponibilizacao": "06/2020",
"beneficiario": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"multiploCadastro": false,
"cpfFormatado": "***.862.400-**"
},
"responsavelAuxilioEmergencial": 
{
"nis": "123",
"nome": "JONI MITCHELL",
"nomeSemAcento": "JONI MITCHELL",
"cpfFormatado": "***.862.400-**"
},
"municipio": 
{
"codigoIBGE": "123",
"nomeIBGE": "LAST TIME I SAW RICHARD",
"nomeIBGEsemAcento": "LAST TIME I SAW RICHARD",
"pais": "BRASIL",
"uf": 
{
"sigla": "RS",
"nome": "RIO GRANDE DO SUL"
}
},
"valor": 50
}    
]

和我的C#类

[public class AuxilioEmergencial 
{
public  Auxilio[] auxilio { get; set; }
}
public class Auxilio
{
public int id { get; set; }
public string mesDisponibilizacao { get; set; }
public Beneficiario beneficiario { get; set; }
public Responsavelauxilioemergencial responsavelAuxilioEmergencial { get; set; }
public DadosMunicipio municipio { get; set; }
public float valor { get; set; }
}
public class Beneficiario
{
public string nis { get; set; }
public string nome { get; set; }
public bool multiploCadastro { get; set; }
public string cpfFormatado { get; set; }
}
public class Responsavelauxilioemergencial
{
public string nis { get; set; }
public string nome { get; set; }
public string nomeSemAcento { get; set; }
public string cpfFormatado { get; set; }
}
public class DadosMunicipio
{
public string codigoIBGE { get; set; }
public string nomeIBGE { get; set; }
public string nomeIBGEsemAcento { get; set; }
public string pais { get; set; }
public UF uf { get; set; }
}
public class UF
{
public string sigla { get; set; }
public string nome { get; set; }
}]

进行时

JsonConvert.DeserializeObject<List<Model.AuxilioEmergencial>>(restResponse.Content);

您告诉反序列化程序您想要一个List,其中每个元素的类型都是AuxilioEmergencial

AuxilioEmergencial有1个属性auxilio,这意味着JSON数组中的每个对象都必须具有该属性才能正确反序列化。例如:

[
{
"auxilio": {
"id ": 1,
"mesDisponibilizacao": "06/2020",
...
}
},
{
"auxilio": {
...
}
}
]     

你真正想要的是:

JsonConvert.DeserializeObject<List<Model.Auxilio>>(restResponse.Content);

相关内容

  • 没有找到相关文章

最新更新