¡Saludos, amantes de la programación en “NaviWorld”! En la búsqueda constante de simplificar tareas en Navision, esta semana nos sumergimos en un terreno que a menudo resulta un laberinto en Navision: los JSON. Crearlos puede ser un desafío, ¡pero no temáis! Estoy aquí para presentaros una DLL que he creado para hacer de esta tarea un paseo en el parque. 😎
Si no sabéis que es una DLL o como crearla os aconsejo revisar primero los siguientes post:
Venga, ¡Vamos, manos a la obra! 😚
Creación del Proyecto y Librería:
Comenzamos creando un nuevo proyecto en Visual Studio, donde daremos vida a nuestra DLL. Para garantizar un flujo suave, añadimos la librería Newtonsoft a través de NuGet. Esta librería es la aliada perfecta para trabajar con JSON de manera eficiente.
Constructor y Variables Globales:
Dentro de nuestra clase, declaramos las variables globales necesarias y creamos un constructor donde inicializamos algunas de ellas. Esta parte es crucial para preparar el terreno antes de sumergirnos en las funciones específicas.
namespace MgtJson.Class
{
public class CreateJson
{
private JsonTextWriter jsonWriter;
StringBuilder buldier;
StringWriter writer;
public CreateJson()
{
buldier = new StringBuilder();
writer = new StringWriter(buldier);
jsonWriter = new JsonTextWriter(writer);
jsonWriter.Formatting = Formatting.Indented;
}
}
}
Funciones Esenciales:
Enfrentémonos a las funciones que hacen que esta DLL sea una joya en el mundo de los JSON:
- ReturnJson(): Devuelve el JSON en formato de texto. Perfecto para obtener el resultado final de nuestro trabajo.
public String ReturnJSon()
{
jsonWriter.Flush();
string jsonstr = buldier.ToString();
return jsonstr;
}
- AddLine(): Agrega una nueva línea al JSON. Esta función es esencial para construir estructuras más complejas.
public void AddLine(String tag, String valor)
{
jsonWriter.WritePropertyName(tag);
jsonWriter.WriteValue(valor);
}
- InitJson() y EndJson(): Inician y finalizan el JSON. Estos son los cimientos que sostienen todo el proceso.
public void InitJson()
{
jsonWriter.WriteStartObject();
}
public void EndJson()
{
jsonWriter.WriteEndObject();
}
- InitAnidado() y EndAnidado(): Ideales cuando necesitamos crear un JSON dentro de otro. La jerarquía toma forma con estas funciones.
public void InitAnidado(String tagAnidado)
{
if (tagAnidado != "")
{
jsonWriter.WritePropertyName(tagAnidado);
}
jsonWriter.WriteStartObject();
}
public void EndAnidado()
{
jsonWriter.WriteEndObject();
}
- InitArray() y EndArray(): Imprescindibles para la creación y finalización de arrays dentro de un JSON. A veces, la complejidad está en los detalles.
public void InitArray(String tagArray)
{
if (tagArray != "")
{
jsonWriter.WritePropertyName(tagArray);
}
jsonWriter.WriteStartArray();
}
public void EndArray()
{
jsonWriter.WriteEndArray();
}
Crear JSON puede ser un desafío, pero con la ayuda de esta DLL, estamos dando un paso más cerca de la simplicidad en Navision. Como siempre, el código completo y ejemplos detallados están disponibles en mi repositorio de GitHub.
Espero que esta herramienta os sea tan útil como a mí. ¡Hasta la próxima, programadores de “NaviWorld”! 🚀
[…] por la simplificación de los Json en Navision, hemos explorado la creación de las clases CreateJson y ReadJson. Hoy, el ansiado día ha llegado: descubriremos cómo ejecutar con éxito todo lo que […]