Eu tenho a seguinte variável do tipo {Newtonsoft.Json.Linq.JArray}
.
properties["Value"] {[
{
"Name": "Username",
"Selected": true
},
{
"Name": "Password",
"Selected": true
}
]}
O que eu quero realizar é converter isso para List<SelectableEnumItem>
onde SelectableEnumItem
é o seguinte tipo:
public class SelectableEnumItem
{
public string Name { get; set; }
public bool Selected { get; set; }
}
Eu sou bastante novo em programação e não tenho certeza se isso é possível. Qualquer ajuda com o exemplo de trabalho será muito apreciada.
JsonConvert.DeserializeObject(value)
vez deJsonConvert.DeserializeObject<T>(value)
O exemplo da pergunta é um caso mais simples, em que os nomes das propriedades correspondiam exatamente ao json e ao código. Se os nomes das propriedades não corresponderem exatamente, por exemplo, a propriedade em json is
"first_name": "Mark"
e a propriedade no códigoFirstName
, use o método Select da seguinte maneirafonte
O valor de retorno da API no meu caso, como mostrado aqui:
A conversão da matriz de itens em lista de clientes foi tratada como mostrado aqui:
fonte
Eu posso pensar em um método diferente para alcançar o mesmo
ou (tive alguma situação em que este não funcionou bem)
ou use extensão linq
ou
ou mais explicitamente
por favor, preste atenção na solução acima eu usei objeto dinâmico
Posso pensar em mais algumas soluções que são combinações das soluções acima. mas acho que abrange quase todos os métodos disponíveis no mercado.
Eu uso o primeiro
fonte
fonte
public class SelectableEnumItem { [JsonProperty("Name")] public string Name { get; set; } [JsonProperty("Selected")] public bool Selected { get; set; } } public IList<SelectableEnumItem> GetListOfObject(string jsonTextHere) { return JsonConvert.DeserializeObject<List<SelectableEnumItem>>(jsonTextHere); }
Use IList para obter o JArray Count e use Loop para converter em lista
fonte