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()


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.additemnull(ll_RootObject, TipoNotaLabel)

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

     customer[{ }]
             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.
  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

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.