Una librería base (un "include") para manejar JSON en PowerBuilder de forma orientada a objetos. Todo gira
en torno a una única clase, u_json, que sirve a la vez para parsear, generar, recorrer y manipular
un documento JSON sin salir del mismo objeto.
La gracia es que cada nodo del árbol JSON es a su vez un u_json: un objeto, un array, un string, un
número… Te mueves por el documento pidiendo nodos hijos y cada uno sabe responder qué es y qué vale. Muy
cómodo y muy reutilizable: lo metes en tu workspace como librería de apoyo y a tirar.
Es la típica navaja suiza para JSON. Algunas de las cosas que u_json sabe hacer:
- Cargar / volcar:
of_load_string(),of_load_file(),of_get_json_string(),of_save_to_file(). - Recorrer el árbol:
of_get_node(key)oof_get_node(index),of_get_parent(),of_get_count(),of_get_key(),of_get_index(),of_key_exists(). - Leer valores tipados:
of_get_value_string(),of_get_value_number(),of_get_value_boolean(),of_get_value_date(),of_get_value_datetime(),of_get_value_time(),of_get_value_blob(). - Construir / modificar:
of_add_node(),of_set_value()(sobrecargado por tipo),of_set_value_null(),of_replace_node(),of_delete_node(),of_change_key(),of_create_copy(),of_reset(). - Saber qué tienes delante:
of_get_type()devuelve eljsonitemtype(objeto, array, string, número…).
Todo con excepciones (throws exception), así que los errores de parseo o de acceso se controlan limpio.
- PowerBuilder 2025 para abrir la solución (
inc.win.base.pb-json.pbsln). - La librería vive en
json.pbly solo necesita la claseu_json.
-
Clona el repo (viene en modo solución).
-
Abre
inc.win.base.pb-json.pbslnen el IDE de PowerBuilder. -
Añade
json.pbla la lista de librerías de tu target y empieza a usaru_json:u_json lu_json lu_json = create u_json lu_json.of_load_string(ls_json) // parsear ls_nombre = lu_json.of_get_node("nombre").of_get_value_string()
Ejemplo publicado en modo solución: https://github.com/rasanfe/inc.win.base.pb-json
u_json es un proyecto open source de informaticon. Tenéis toda la
documentación de la clase en su Wiki oficial.
Si encontráis fallos o queréis proponer mejoras, lo suyo es usar los issues y pull requests del repo
original. Aquí lo recojo para enseñároslo y usarlo en los ejemplos del blog. ¡Todo el mérito para sus autores!
¡Nos vemos en el próximo artículo! Y recuerda: en PowerBuilder, los límites solo están en nuestra imaginación. 🚀
📨 Blog: https://rsrsystem.blogspot.com/