Simplificando los JSON en Navision: Creación de Json con DLL

En este emocionante artículo, exploraremos cómo superar los desafíos de trabajar con JSON en Navision mediante una DLL creada específicamente para facilitar esta tarea. Desde la creación del proyecto en Visual Studio hasta la implementación de funciones esenciales para manipular JSON, cada paso se detalla cuidadosamente para brindar a los programadores de "NaviWorld" una solución eficiente y fácil de usar.

¡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:

Ejemplo básico crear DLL

Integración DLL a Navision

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”! 🚀

Share your love

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *