Eu tenho este JSON:
[
{
"Attributes": [
{
"Key": "Name",
"Value": {
"Value": "Acc 1",
"Values": [
"Acc 1"
]
}
},
{
"Key": "Id",
"Value": {
"Value": "1",
"Values": [
"1"
]
}
}
],
"Name": "account",
"Id": "1"
},
{
"Attributes": [
{
"Key": "Name",
"Value": {
"Value": "Acc 2",
"Values": [
"Acc 2"
]
}
},
{
"Key": "Id",
"Value": {
"Value": "2",
"Values": [
"2"
]
}
}
],
"Name": "account",
"Id": "2"
},
{
"Attributes": [
{
"Key": "Name",
"Value": {
"Value": "Acc 3",
"Values": [
"Acc 3"
]
}
},
{
"Key": "Id",
"Value": {
"Value": "3",
"Values": [
"3"
]
}
}
],
"Name": "account",
"Id": "2"
}
]
E eu tenho essas aulas:
public class RetrieveMultipleResponse
{
public List<Attribute> Attributes { get; set; }
public string Name { get; set; }
public string Id { get; set; }
}
public class Value
{
[JsonProperty("Value")]
public string value { get; set; }
public List<string> Values { get; set; }
}
public class Attribute
{
public string Key { get; set; }
public Value Value { get; set; }
}
Estou tentando desserializar o JSON acima usando o código abaixo:
var objResponse1 = JsonConvert.DeserializeObject<RetrieveMultipleResponse>(JsonStr);
mas estou recebendo este erro:
Não é possível desserializar a matriz JSON atual (por exemplo, [1,2,3]) no tipo 'test.Model.RetrieveMultipleResponse' porque o tipo requer um objeto JSON (por exemplo, {"nome": "valor"}) para desserializar corretamente. Para corrigir esse erro, altere o JSON para um objeto JSON (por exemplo, {"nome": "valor"}) ou altere o tipo desserializado para uma matriz ou um tipo que implementa uma interface de coleção (por exemplo, ICollection, IList) como Lista que pode ser desserializado de uma matriz JSON. JsonArrayAttribute também pode ser adicionado ao tipo para forçá-lo a desserializar de uma matriz JSON. Caminho '', linha 1, posição 1.
Se alguém quiser oferecer suporte a Genéricos (em um método de extensão), este é o padrão ...
É usado assim:
MyClassType se parece com isto (deve corresponder aos pares nome-valor da matriz JSON)
Use o NUGET para baixar Newtonsoft.Json adicione uma referência onde necessário ...
fonte
Não é possível adicionar um comentário à solução, mas isso não funcionou para mim. A solução que funcionou para mim foi usar:
Desserializando a matriz JSON em um objeto .NET fortemente tipado
fonte
funcionou!
fonte
Use isto,
FrontData
é uma string JSON:e extrair lista:
fonte