Simplificando los JSON en Navision: leer Json con DLL

Simplificando los JSON en Navision: leer Json con DLL

29 ABR 2024

En este fascinante capítulo, nos sumergimos en la creación de una clase dedicada a la lectura de JSON. Después de sentar las bases con DLLs básicas y explorar su ejecución en Navision, abordamos el desafío de los JSON en versiones previas a 2018 de Navision. Desde la extracción de valores específicos hasta la manipulación de JSONs anidados, cada función creada en esta DLL es una herramienta esencial para simplificar la lectura de JSON.

¡Saludos, compañeros de programación en “NaviWorld”! Continuamos nuestro emocionante viaje en el mundo de las DLL para Navision. Hasta ahora, hemos explorado desde la creación básica de DLL hasta la ejecución en Navision. Además, nos aventuramos en la creación de DLLs para manejar JSON, pero ahora es el momento de profundizar. 🚀

El Desafío de los JSON:
El manejo de JSON en Navision, especialmente en versiones anteriores a 2018, puede resultar un terreno complicado. Pero ¡no temáis! Hoy, nos adentraremos en la creación de una clase dedicada exclusivamente a la lectura de JSON.

¿Listos para dominar este arte? pues ¡Vamos, manos a la obra! 🧐

Constructor y Variables Globales:
Comenzamos creando el constructor de nuestro proyecto y declarando la variable global que almacenará el JSON en formato texto. Al recibir el JSON como parámetro en el constructor, establecemos el escenario para las funciones que vendrán.

namespace MgtJson.Class
{
    public class ReadJson
    {
        String StringJson;

        public ReadJson(String NewStringJson)
        {
            StringJson = NewStringJson;
        }
    }
}

Funciones Esenciales:
Ahora, exploramos las funciones clave que harán de nuestra clase una herramienta invaluable para la lectura de JSON:

  • GetValueJson_FromTag: Esta función permite obtener el valor de un tag específico dentro del JSON. Al proporcionar el nombre del tag, buscamos y devolvemos su valor.

        public String GetValueJson_FromTag(String TagText)
        {
            JObject JsonObject = JObject.Parse(StringJson);
            var Jtoken = JsonObject.GetValue(TagText);
            String ValueText = Jtoken.ToString();

            return ValueText;
        }
  • GetValueJson_FromPosition y GetTagJson_FromPosition : No solo obtenemos el valor, sino también el tag en una posición específica del JSON. Ideal para casos donde la posición es clave.

        public String GetValueJson_FromPosition(int Position)
        {
            JObject JsonObject = JObject.Parse(StringJson);
            JProperty property = JsonObject.Properties().ElementAt(Position);
            String returnValue = property.Value.ToString();
            return (returnValue);
        }

        public String GetTagJson_FromPosition(int Position)
        {
            JObject JsonObject = JObject.Parse(StringJson);
            JProperty property = JsonObject.Properties().ElementAt(Position);
            String returnValue = property.Name.ToString();
            return (returnValue);
        }
  • GetJson_FormJson: Manejamos la complejidad de JSON dentro de JSON. Esta función devuelve el JSON interno en un formato legible y fácil de usar.

        public String GetJson_FormJson(String JsonTagText)
        {
            JObject JsonObject = JObject.Parse(StringJson);
            var Jtoken = JsonObject.SelectToken(JsonTagText);
            String JsonValueText = Jtoken.ToString();

            return JsonValueText;
        }
  • GetValue_FromJsonArray: Para trabajar con JSON arrays, creamos una función que extrae el JSON en una posición dada, abriendo nuevas oportunidades para explorar y manipular valores internos.

        public String GetValue_FromJsonArray(int Position)
        {
            JArray JsonArray = JArray.Parse(StringJson);
            String returnValue = JsonArray[Position].ToString();
            return (returnValue);
        }
  • GetCountJson: Una función para saber cuantos registros tiene un JSON

        public int GetCountJson()
        {
            JObject JsonObject = JObject.Parse(StringJson);
            return JsonObject.Properties().Count();
        }
  • GetCountJsonArray: Una función esencial para conocer la longitud de un JSON array. Con esta información, podemos recorrerlo y extraer JSONs internos según sea necesario.

        public int GetCountJsonArray()
        {
            JArray JsonArray = JArray.Parse(StringJson);
            return JsonArray.Count;
        }
  • ExistsTag: Evitamos errores al exportar datos al verificar la existencia de un tag específico en el JSON.

        public Boolean ExistsTag(String TagText)
        {
            Boolean IsExistsTag;
            JToken Jtoken;
            JObject JsonObject = JObject.Parse(StringJson);
            if (JsonObject.TryGetValue(TagText, out Jtoken))
            {
                IsExistsTag = true;
            }
            else
            {
                IsExistsTag = false;
            }

            return IsExistsTag;
        }

Con estas funciones, hemos armado un conjunto sólido para enfrentarnos a los retos de la lectura de JSON en Navision. Este viaje no ha hecho más que comenzar, y en nuestro próximo artículo, exploraremos como ejecutar todas estas funciones en nuestro Navision.

Como siempre, el código completo está disponible en mi repositorio de GitHub.

¡Espero que encontréis útiles estas herramientas! Hasta pronto, programadores de “NaviWorld”. 🚀

Sigue leyendo

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

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.

22 abr 2024
C#DllVisual Studio
Leer más
Desbloqueando el Potencial de Navision: Creando DLLs Personalizadas con C# y Visual Studio

Desbloqueando el Potencial de Navision: Creando DLLs Personalizadas con C# y Visual Studio

En este emocionante viaje por el universo de Navision, descubriremos cómo superar las limitaciones mediante la creación y empaquetado de DLLs personalizadas con C# y Visual Studio. En esta primera entrega, exploramos los pasos esenciales para configurar el proyecto, desde la elección del Framework hasta la firma de nuestra DLL. Además, proporcionamos consejos prácticos y destacamos la importancia de la personalización en entornos empresariales.

1 abr 2024
C#DllVisual Studio
Leer más
Simplificando los JSON en Navision: ¡Empaqueta tus DLLs en una única y Ejecuta en Navision sin Complicaciones!

Simplificando los JSON en Navision: ¡Empaqueta tus DLLs en una única y Ejecuta en Navision sin Complicaciones!

A lo largo de mi travesía simplificando la programación en NaviWorld, hemos explorado la creación y ejecución de clases para gestionar Json en Navision. En este último episodio, abordamos el desafío de gestionar múltiples DLLs al desplegar extensiones en Navision. Además, descubre cómo ejecutar estas DLLs eficientemente en un entorno de CAL

6 may 2024
DllJsonNavision
Leer más
Copyright © 2026·Política privacidad