1. JOSE WILLIAM ROMERO OLIVOS
  2. PowerBuilder
  3. Tuesday, 28 November 2023 21:40 PM UTC
Best regards, gentlemen.

If anyone can help me with this issue, I would appreciate it. I want to generate a json with JsonGenerator (I don't know if it is the correct tool), which contains an array of data, and I require guidance.

this is my code for the moment
JsonGenerator lnv_JsonGenerator
string ls_Json
Long ll_RootObject
Long ll_ChildObject

lnv_JsonGenerator = create JsonGenerator

// Create an object root item
ll_RootObject = lnv_JsonGenerator.CreateJsonObject()


dw_transaccion.settransobject(sqlca)
dw_transaccion.retrieve(idDocumento)

if dw_transaccion.rowcount() <> 1 then
Messagebox("Terrasoft - Mensaje","Error al generar Datos relativos a la transacción : Valor de registros " + string(dw_transaccion.rowcount()),stopsign!)
return 0
end if;

dw_transaccion.accepttext( )

numDocumentoldObligadoValue = dw_transaccion.object.ips_numdocumentoldobligado[1]
numFacturaValue = dw_transaccion.object.vfct_gestion_documentos_numfactura[1]

lnv_JsonGenerator.additemstring(ll_RootObject,numDocumentoldObligadoLabel,numDocumentoldObligadoValue)
lnv_JsonGenerator.additemstring(ll_RootObject,numFacturaLabel,numFacturaValue)
setnull(TipoNotaLabelValue)
lnv_JsonGenerator.additemnull(ll_RootObject, TipoNotaLabel)
setnull(numNotaValue)
lnv_JsonGenerator.additemnull(ll_RootObject,numNotaLabel)

ls_Json = lnv_JsonGenerator.GetJsonString()

destroy lnv_JsonGenerator

This generates that json, which is correct.

{
    "numDocumentoldObligado": "9002319816",
    "numFactura": "FVD243",
    "numNota": null,
    "TipoNota": null
}

What I need now is to be able to use a datawindow that contains the list of clients with their properties, and add that arrangement to the json, as follows:

{
	"numDocumentoldObligado": "9002319816",
    "numFactura": "FVD243",
    "numNota": null,
    "TipoNota": null,
    "clients": [
        {
            "birthDate": "2000-01-01 08:10",
            "codCountry": "170",
            "codSexo": "M",
            "codZonaTerritorialResidencia": "01",
            "consec": 1,
            "id": "52100200",
            "nameClient": "William Romero"
        },
        {
            "birthDate": "2000-01-01 08:10",
            "codCountry": "171",
            "codSexo": "F",
            "codZonaTerritorialResidencia": "01",
            "consec": 1,
            "id": "5545654",
            "nameClient": "Maria Romero"
        }
    ]

}

 

I bring the data from a data window, and I go through the data window with a for loop to obtain the customer data.

My question is how do I build that array and add the data to the json?

I appreciate your great help.
JOSE WILLIAM ROMERO OLIVOS Accepted Answer Pending Moderation
  1. Tuesday, 28 November 2023 22:51 PM UTC
  2. PowerBuilder
  3. # 1
Thanks for the reply. What happens is that within each client, I must then place an arrangement or objects of the products and services that that client has.

The final json product would have this structure

bill{}
     customer[{ }]
         service{}
             product1[{}]
             product2[{ }]
              productx[{ }]
     
So I don't know if it can be done by exporting the data window, or if everything really has to be done by code.
Comment
  1. Chris Pollach @Appeon
  2. Tuesday, 28 November 2023 23:56 PM UTC
For a complex nested structure like that, you will definitely need to use the JSONGenerator object.
  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Tuesday, 28 November 2023 22:27 PM UTC
  2. PowerBuilder
  3. # 2

Hi Jose;

  If you just want pure JSON from your data loaded in a DataWindow or DataStore primary buffer - why not just use the ExportJSON ( ) command?

Regards ... Chris

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.