[英]Trying to Deserialize Json to Object
我正在嘗試反序列化JSON,但是我對象的所有屬性都為null。
我的JSON:
{"List":{"item":[{"id":"47861","nome":"2,4-D AMINA 840 SL","codMapa":"5002","fabricante":"ALBAUGH AGRO BRASIL LTDA","embalagem":"BALDE","tipoEmbalagem":"AÇO","volume":"20.0000","unidade":"LITROS"},{"id":"47863","nome":"2,4-D AMINA 840 SL","codMapa":"5002","fabricante":"ALBAUGH AGRO BRASIL LTDA","embalagem":"BOMBONA","tipoEmbalagem":"PLASTICO","volume":"5.0000","unidade":"LITROS"},{"id":"47865","nome":"2,4-D AMINA 840 SL","codMapa":"5002","fabricante":"ALBAUGH AGRO BRASIL LTDA","embalagem":"BOMBONA","tipoEmbalagem":"PLASTICO","volume":"10.0000","unidade":"LITROS"},{"id":"47867","nome":"2,4-D AMINA 840 SL","codMapa":"5002","fabricante":"ALBAUGH AGRO BRASIL LTDA","embalagem":"BOMBONA","tipoEmbalagem":"PLASTICO","volume":"20.0000","unidade":"LITROS"},{"id":"47869","nome":"2,4-D AMINA 840 SL","codMapa":"5002","fabricante":"ALBAUGH AGRO BRASIL LTDA","embalagem":"CAIXA","tipoEmbalagem":"PAPELÃO","volume":"20.0000","unidade":"LITROS"},{"id":"47871","nome":"2,4-D AMINA 840 SL","codMapa":"5002","fabricante":"ALBAUGH AGRO BRASIL LTDA","embalagem":"FRASCO","tipoEmbalagem":"PLASTICO","volume":"1.0000","unidade":"LITROS"},{"id":"47873","nome":"2,4-D AMINA 840 SL","codMapa":"5002","fabricante":"ALBAUGH AGRO BRASIL LTDA","embalagem":"TAMBOR","tipoEmbalagem":"AÇO","volume":"200.0000","unidade":"LITROS"}]}}
我的課:
public class ListaProdutosAutorizados
{
public List<ProdutoAutorizado> ProdutosAutorizados { get; set; }
}
public class ProdutoAutorizado
{
public int id { get; set; }
public string nome { get; set; }
public int? codMapa { get; set; }
public string fabricante { get; set; }
public string embalagem { get; set; }
public string tipoEmbalagem { get; set; }
public decimal? volume { get; set; }
public string unidade { get; set; }
}
而我的代碼:
var lResposta = JsonConvert.DeserializeObject<ListaProdutosAutorizados>(stringJson, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
您的JSON應該類似於C#類:
[
{
"id": 47861,
"nome": "2,4-D AMINA 840 SL",
"codMapa": 5002,
"fabricante": "ALBAUGH AGRO BRASIL LTDA",
"embalagem": "BALDE",
"tipoEmbalagem": "AÇO",
"volume": 20.0000,
"unidade": "LITROS"
},
{
"id": 47863,
"nome": "2,4-D AMINA 840 SL",
"codMapa": 5002,
"fabricante": "ALBAUGH AGRO BRASIL LTDA",
"embalagem": "BOMBONA",
"tipoEmbalagem": "PLASTICO",
"volume": 5.0000,
"unidade": "LITROS"
},
{
"id": 47865,
"nome": "2,4-D AMINA 840 SL",
"codMapa": 5002,
"fabricante": "ALBAUGH AGRO BRASIL LTDA",
"embalagem": "BOMBONA",
"tipoEmbalagem": "PLASTICO",
"volume": 10.0000,
"unidade": "LITROS"
},
{
"id": 47867,
"nome": "2,4-D AMINA 840 SL",
"codMapa": 5002,
"fabricante": "ALBAUGH AGRO BRASIL LTDA",
"embalagem": "BOMBONA",
"tipoEmbalagem": "PLASTICO",
"volume": 20.0000,
"unidade": "LITROS"
},
{
"id": 47869,
"nome": "2,4-D AMINA 840 SL",
"codMapa": 5002,
"fabricante": "ALBAUGH AGRO BRASIL LTDA",
"embalagem": "CAIXA",
"tipoEmbalagem": "PAPELÃO",
"volume": 20.0000,
"unidade": "LITROS"
},
{
"id": 47871,
"nome": "2,4-D AMINA 840 SL",
"codMapa": 5002,
"fabricante": "ALBAUGH AGRO BRASIL LTDA",
"embalagem": "FRASCO",
"tipoEmbalagem": "PLASTICO",
"volume": 1.0000,
"unidade": "LITROS"
},
{
"id": 47873,
"nome": "2,4-D AMINA 840 SL",
"codMapa": 5002,
"fabricante": "ALBAUGH AGRO BRASIL LTDA",
"embalagem": "TAMBOR",
"tipoEmbalagem": "AÇO",
"volume": 200.0000,
"unidade": "LITROS"
}
]
請注意,您的id
, codMapa
和volume
屬性可能會錯誤地反序列化,因為它們在原始JSON中的類型是字符串,而不是十進制或整數。
如果將此新JSON反序列化為List<ProdutoAutorizado>
則它應該可以工作。
您需要在json文件上使用相同的屬性名稱。 在您的示例中,您具有List
那么C#類中必須有一個名為List
的屬性,並且該item
也必須具有相同的屬性。
匹配它們的另一種方法是使用JsonProperty
屬性。
檢查此問題以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.