Como se forma un json dado este ejemplo

Buenas el caso es que estoy intentando montar un JSON con los registros de una tabla con las funciones de JSON y no encuentro manera de hacerlo, he leido la documentación y tampoco es que diga mucho.

He intentado de muchas formas :

  • Dado que genere un json desde lista, una vez cargada, me genera la siguiente esctructura:
    [{ “ID”:“VALOR”, “NAME”:“VALOR” }]
    el problema que tengo con esta función es que no me permite predefinir los campos personalizados del json.

He intentado esto siguiente, crear un JSON a mano mediante jsonAddToObject y jsonAddToArray, de la siguiente forma:

  • Cargo la lista > Recorro solo Lectura > y le voy diciendo que concatene una variable JSON tal que así:
    JSON + jsonAddToObject(JSON,“id”, #ID, “number”), y así sucesivamente, el problema aqui viene en que me genera una estructura de la siguiente forma: {“id”:“valor”}{“id”:“valor”}.

Una vez dicho todo esto, ¿Como puedo generar una estructura de JSON con unas claves definidas por mi y que tengan esta estructura: [{}] ? Lo llevo intentando varios dias y no doy con la copla y ya no se que mas probar.

Un saludo.

Hola fran_garcia.

En realidad es bastante sencillo el uso de estas funciones.

Un ejemplo:

Rem ( Generar un JSON desde 0 )
Set ( CITEM_TEMP, "" )
Set ( CJSON_TEMP, "" )
Cargar lista ( LISTA_TEST@0ps_rc29_pruebas_dat, ID, , , , )
Recorrer lista solo lectura
  Set ( CITEM_TEMP, jsonAddToObject(CITEM_TEMP, "MiClave", #ID, "number") )
  Set ( CITEM_TEMP, jsonAddToObject(CITEM_TEMP, "MiNombre", #NAME, "string") )
  Set ( CJSON_TEMP, jsonAddToArray(CJSON_TEMP, CITEM_TEMP, "object") )
Libre
Mensaje ( CJSON_TEMP, Información, , )

Como ves, CITEM_TEMP es el objeto JSON con las claves personalizadas “MiClave” y “MiNombre”, el cual vas añadiendo uno por cada registro de la tabla al objeto JSON de tipo Array CJSON_TEMP.

Saludos
Paco Satué

1 me gusta

Buenas Paco, gracias por tu respuesta, perdón por molestar, pero sigo teniendo una duda.

Si intento justo en la linea abajo del ultimo SET, cargar los plurales para añadirlos también, me devuelve 0 el proceso, no se muy bien en lo que estoy fallando.