No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Importando datos

8/26
Recursos

Aportes 7

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

En el constructor de la clase LinqQueries el editor indica que hay un warning.
Si la clase JsonSerializer no puede deserializar el JSON devuelve NULL.
Para evitar ese warning hacemos lo siguiente:

  1. Le colocamos el operador ! que indica que el dato es non-nullable.
JsonSerializer.Deserialize<List<Book>>(json, new JsonSerializerOptions { PropertyNameCaseInsensitive = true })!
  1. Asignamos un valor por default si la deserialización devuelve NULL.
    Estoy creando una lista vacía.
JsonSerializer.Deserialize<List<Book>>(json, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }) ?? Enumerable.Empty<Book>().ToList();

Para serializar usé la librería NewtonSoft, estaba acostumbrado a ella y el código me quedo así

Yo se que este no es un curso de C#, pero me parece que el profesor no esta explicando nada,esta solamente desarrollando un ejercicio para el misimo, y no estoy de acuerdo, este tiepo de cursos asi es muy reiterativo en Platzi, es dificil llevar el ritmo en ocasiones.

public class Book
{
public string? Title {get;set;}
public int PageCount {get;set;}
public string? Status {get;set;}
public DateTime PublishedDate {get;set;}
public string[]? Authors {get;set;}
public string[]? Categories {get;set;}
}

falto la clase e importante ponerlos signos de Interrogacion para los valores nulos… Buen aporte @Mairon Andres

Como aporte, hice algunos cambios al código propuesto agregando primero que todo como una constante de tipo string para guardar la ubicación del archivo json, segundo en el constructor agrego dos validaciones siendo la primera en la línea 9 para confirmar que si existe el archivo para poder leerlo, la segunda en la línea 14 para validar que el archivo tenga contenido y por ultimo dejo dentro de la misma clase el método de imprimir para que solo desde el método Program después de inicializar se haga el llamada al método. En la imagen se muestra todo el contenido mencionado

Código de la clase LinqQueries.cs

Código del Program.cs

Resultado del Código

Vista Completa desde el editor

Para las personas que estén trabajando con Visual Studio Comunity es recomendable que el archivo “books.json” se lo guarde en la carpeta /bin/Debug/net para que no les de error al momento de extraer los datos.

Para que te quede ordenado, puedes aplicar una tablucaión con el caracter \t

Console.WriteLine("{0, -70}\t{1, 7}\t{2, 11}\n", "Titulo", "N. Paginas", "Fecha Publicación");
foreach(var item in listaDeLibros){
    Console.WriteLine("{0, -70}\t{1, 7}\t\t{2, 11}", item.Title, item.PageCount, item.PublishedDate);