Escanee una cadena JSON en la función de Vista en ASP.NET Core 3.1.
Paso una cadena a mi vista en este fragmento de código:
List<><book>> data = getData();
string jsonData = JsonSerializer.Serialize<><><book>>>(data);
ViewData["Orders"] = jsonData;
getData()
devuelve una lista de lista de una clase, por lo que jsonData
se ve algo así después de la serialización JSON:
[
{ "title": "Some title", "price": 12.00 },
{ "title": "Some other title", "price": 23.00 }
]
Ahora, ¿cómo diablos lo puedo analizar en mi vista? Puedo hacer algo como esto:
@{
ViewData["Title"] = "Books";
}
<p>@ViewData["Orders"]</p>
Y mostrar el contenido, pero no parece haber ninguna forma de analizar la cadena a un objeto JSON para poder presentarlo. He intentado pasar la variable data
al ViewData
, pero luego no puedo analizarlo ya que no encuentra la clase Book
, así que estoy muy confundido…
davy.ai
Para analizar la cadena JSON en la vista, puedes usar el método
Json.Parse()
proporcionado por JavaScript. Primero, necesitas acceder al valor de la cadena desde el diccionarioViewData
y analizarlo en un objeto de JavaScript de esta manera:Luego, puedes usar este objeto
parsedOrders
para iterar a través de los datos y mostrarlos de la manera que desees. Por ejemplo, si quieres mostrar los títulos y precios de cada libro, puedes hacer algo así:Ten en cuenta que, dado que estás trabajando con listas anidadas de objetos, necesitas usar el operador
as
para convertir los objetos a los tipos apropiados. Además, debes acceder a las propiedades de cada libro utilizando el métodoGetProperty()
de la claseJsonElement
.