我有一个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);