Convierta Newtonsoft.Json.Linq.JArray en una lista de tipos de objetos específicos
Tengo la siguiente variable de tipo {Newtonsoft.Json.Linq.JArray}
.
properties["Value"] {[
{
"Name": "Username",
"Selected": true
},
{
"Name": "Password",
"Selected": true
}
]}
Lo que quiero lograr es convertir esto a List<SelectableEnumItem>
donde SelectableEnumItem
está el siguiente tipo:
public class SelectableEnumItem
{
public string Name { get; set; }
public bool Selected { get; set; }
}
Soy bastante nuevo en la programación y no estoy seguro de si esto es posible. Cualquier ayuda con un ejemplo práctico será muy apreciada.
Simplemente llame array.ToObject<List<SelectableEnumItem>>()
al método. Te devolverá lo que necesitas.
Documentación: Convertir JSON a un tipo
El ejemplo de la pregunta es un caso más simple en el que los nombres de las propiedades coinciden exactamente en json y en código. Si los nombres de las propiedades no coinciden exactamente, por ejemplo, la propiedad en json es "first_name": "Mark"
y la propiedad en el código es, FirstName
utilice el método Select de la siguiente manera
List<SelectableEnumItem> items = ((JArray)array).Select(x => new SelectableEnumItem
{
FirstName = (string)x["first_name"],
Selected = (bool)x["selected"]
}).ToList();