Como Leer un Archivo JSON en un ComboBox con C# 7.3
En esta página:
Demo Github
El formato JSON es un muy popular, por su sencillez, ligereza y rapidez, para intercambiar datos entre dispositivos o aplicaciones, con C# podemos leer los datos de un archivo JSON y luego mostrarlo en un elemento determinado, en este tutorial te enseñare como leer un archivo JSON y mostrar los datos en un ComboBox que es como una lista de opciones, que el usuario puede seleccionar, bien vamos con este tutorial.
Antes de continuar te invito a leer los siguientes artículos:
- Que es C# (C Sharp) y otros detalles
- Crud con C# y SQL Server ( Corregido: 25-03-2019 )
- Métodos Maybe Monad en C#
- Tipos de Variables en C# 9
- Puedes leer más en la categoría C#
Asimismo te invito a escuchar el Podcast: “Razones Por Las Cuales Te Cuesta Aprender A Programar”:
Spotify: | Sound Cloud: |
Bien ahora continuemos con el Post: Como Leer un Archivo JSON en un ComboBox con C# 7.3
Para este tutoria, estoy usando Visual Studio Community 2017 (Versión 15.9.27 ) y Net Framework 4.7.03062
Archivo JSON
El archivo JSON tiene el nombre postres.json y contiene los siguientes datos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
[ { "id":"1", "nombre":"Torta de Chocolate", "stock":"35", "precio":"5.00", "url":"torta-de-chocolate", "img":"tc.jpg", "fecha":"2019-06-17 15:56:23" }, { "id":"2", "nombre":"Pie de Manzana", "stock":"45", "precio":"4.50", "url":"pie-de-manzana", "img":"pm.jpg", "fecha":"2018-08-11 16:25:33" }, { "id":"3", "nombre":"Arroz con Leche", "stock":"36", "precio":"2.50", "url":"arroz-con-leche", "img":"al.jpg", "fecha":"2018-08-11 16:25:36" }, { "id":"4", "nombre":"Gelatina de Fresa", "stock":"60", "precio":"1.50", "url":"gelatina-de-fresa", "img":"gf.jpg", "fecha":"2018-08-11 16:25:39" }, { "id":"5", "nombre":"Suspiro a la Limeña", "stock":"26", "precio":"6.00", "url":"suspiro-a-la-limeña", "img":"sl.jpg", "fecha":"2019-06-17 15:58:43" }, { "id":"6", "nombre":"Mazamorra Morada", "stock":"50", "precio":"3.00", "url":"mazamorra-morada", "img":"mm.png", "fecha":"2018-08-11 16:25:45" } ] |
Puedo usar todos los datos del archivo postres.json, pero ya que usaré un ComboBox para cargar los datos, solo usaré el campo nombre, pero tu puedes usar todos los datos que desees.
Creación de Nuevo Proyecto
Abro Visual Studio Community (Yo estoy usando Visual Studio Community 2017) y creamos un nuevo proyecto haciendo clic en Archivo > Nuevo > Proyecto…
En la ventana que me aparece selecciono al lado izquierdo Visual C#, luego al lado derecho selecciono Aplicación de Windows Form (.NET Framework), de nombre le pondré LeerJSON_C_Sharp, tu le puedes poner el nombre que desees y presionamos el botón Aceptar para crear el proyecto.
Luego que Visual Studio Community nos crea el proyecto, nos muestra el área de diseño, en ella agregamos un ComboBox en donde cargaremos los datos del archivo JSON.
Para agregar el ComboBox voy al lado izquierdo a Cuadro de herramientas > Todo Windows Form > ComboBox y lo arrastro al área de diseño.
Con esto ya tenemos listo el ComboBox y a continuación pasaremos al código C#.
Código C#
Para agregar el código C#, podemos hacer doble clic en el área de diseño o ir al lado derecho y hacer clic a Solución “LeerJSON_C_Sharp” (1 proyecto) > LeerJSON_C_Sharp > Form1.cs > Form1.Designer.cs > Form1 > Form1_Load(object, EventArgs) : void
Podemos ver que nos aparece la función Form1_Load y allí es en donde escribiré el código C# para cargar los datos del archivo postres.json al ComboBox.
Comenzamos leyendo el archivo postres.json, le he puesto la ruta completa para poder leerlo, luego leemos los datos del archivo de principio a fin, Deserializamos los datos del objeto, recorremos el array con los datos y agregamos el campo nombre al ComboBox, con esto cargamos todos los nombres del archivo postres.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace LeerJSON_C_Sharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // Leemos el archivo 'postres.json' using (StreamReader archivo = File.OpenText(@"C:/Users/carlos/source/repos/LeerJSON_C_Sharp/LeerJSON_C_Sharp/postres.json")) { // Leemos los datos del archivo 'postre.json' desde el inicio hasta el final string json = archivo.ReadToEnd(); // Deserializamos el archivo 'postres.json' dynamic miarray = JsonConvert.DeserializeObject(json); // Recorremos el array de datos del JSON foreach (var item in miarray) { // Agregamos el campo nombre del archivo 'postres.json' al ComboBox comboBox1.Items.Add(item.nombre); } } } } } |
A mi ComboBox Visual Studio Community le puso el nombre comboBox1 luego de arrastrarlo al área de diseño.
Paquete Newtonsoft.Json
Para hacer hacer uso de ciertos métodos avanzados para trabajar con el archivo JSON, he instalado el paquete Newtonsoft.Json, lo puedes instalar dirigiéndote a Proyectos > Administrar paquetes NuGet…
En la ventana que aparece busca el paquete Newtonsoft.Json y presiona el botón Instalar
Y por último, si ejecutamos el programa, podemos ver que nos cargan los nombres de los postres en el ComboBox.
De esta manera entonces hemos cargado datos del archivo postres.json al ComboBox.
Al inicio de este Post he colocado una Demo y un enlace al repositorio de GitHub en donde he alojado el código fuente del proyecto.
Conclusión
Hemos aprendido a cargar datos desde un archivo JSON a un ComboBox con el Lenguaje de Programación C# en Visual Studio Community 2017, hay muchas formas de leer un archivo JSON, estas varían según lo que necesites hacer, este tutorial explica una de estas formas.
Nota(s)
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.
- C#
- 17-09-2020
- 21-09-2020
- Crear un Post - Eventos Devs - Foro