Casi todos los servicios o API utilizan el lenguaje JSON para enivar o recibir datos, aunque exede el alcance de esta guia explica el lenguaje JSON (recomendamos usar un motor de IA como chatGPT o gemini con un prompt acorde) para el uso de la interfaz mdpyv009 es necesario este formato para poder cargar y leer los datos del servicio.
Los diferentes objeto que implemente el instalador (mdpyv009.gstorage2, mdpyv009.mp2, etc) para conectar a cada servicio suelen incluir los métodos cargarPropiedad y leerPropiedad para preparar los datos que debe ser enviados (para ejecutar un método) o bien para leer los datos devueltos por un método. Estos datos esta generamentente en formato JSON por lo que vamos a ver algunos casos simples.
en JSON entre los tipos de datos hay 2 fundamentales:
diccionario: representan una lista (entre {}" de datos etiquetados con un clave, por lo que cada datos es un para de clave:valor por ejemplo: {"nombre":"juan","apellido":"perez","edad":"10"}.
lista: representa una lista (entre []) de datos numerados desde el 0 como: ["manzana","naranja","mandarina"]
a partir de esos dos colecciones básicas de datos puede haber infinitas combinaciones como: una lista de diccionarios. [{"nombre":"juan","apellido":"lopez"},{"nombre":"juana","apellido":"lopez"}].
un diccionario dentro de otro diccionario: {"padre":{"nombre":"juan","apellido":"lopez"},"hijo":{"nombre":"juana","apellido":"lopez"}}
y todos el resto de combinaciones posibles.
en el caso del método leerPropiedad este tiene 5 argumentos:
metodo: es el nombre del método del que se quiere leer la respuesta (ejecutado previamente)
propiedad: es la ruta y nombre del campo a leer como se ve más abajo.
indice1: sin uso
indice2: sin uso
indice3: sin uso
la ruta de un campo se debe ubicar en la respueta indicando si el datos está en un diccionario (en ese caso indicar su clave) o en una lista (en ese caso indicar si numero de posicion). por ejemlo:
si la respuesta contiene {"nombre":"juan","apellido":"perez","edad":"10"}. podriamos ejecutar objeto.leerPropiedad("metodo", "diccionario.nombre",0,0,0) y asi obtendriamos el valor "juan".
si la respuesta contiene {"padre":{"nombre":"juan","apellido":"lopez"},"hijo":{"nombre":"juana","apellido":"lopez"}} podriamos ejecutar objeto.leerPropiedad("metodo", "diccionario.hijo.diccionario.nombre",0,0,0) y asi obtendriamos el valor "juana".
is la respuesta contiene [{"nombre":"juan","apellido":"lopez"},{"nombre":"juana","apellido":"lopez"}] podriamos ejecutar objeto.leerPropiedad("metodo", "lista.itemcantidad",0,0,0) y asi obtendriamos el valor 2 (2 diccionarios en la lista) y si ejecutamos objeto.leerPropiedad("metodo", "lista.1.diccionario.nombre",0,0,0) y asi obtendriamos el valor "juana" (1 representa el segundo elmento o diccionario de la lista).