/*------------------------------------------------------------------------ File : custom.p Purpose : Syntax : Description : Author(s) : walter.riechsteiner Created : Wed Jul 17 20:12:36 CEST 2024 Notes : ----------------------------------------------------------------------*/ /* *************************** Definitions ************************** */ USING Progress.Json.ObjectModel.*. DEF VAR xx AS LONGCHAR NO-UNDO. DEF VAR yy AS LONGCHAR NO-UNDO. DEF VAR hDset AS HANDLE NO-UNDO. DEF VAR lRetVal AS LOGICAL NO-UNDO. DEF VAR ojsonObject AS jsonObject NO-UNDO. DEF VAR ojsonInput AS jsonObject NO-UNDO. DEF VAR ojsonKunde AS jsonObject NO-UNDO. DEF VAR oParser AS ObjectModelParser NO-UNDO. /* ******************** Preprocessor Definitions ******************** */ /* *************************** Main Block *************************** */ COPY-LOB FROM FILE 'C:\TEMP\jsonfile.json' TO xx. /* xx = CHR(123) + ' "ttInput" : ' + CHR(10) + CHR(123) + CHR(10) + ' "benutzer" : "peter", ' + ' "Sprache" : "DE", ' + ' "Programm" : "test" ' + CHR(10) + CHR(125) + ' , ' + CHR(10) + ' "ttKunde" : ' + CHR(10) + CHR(123) + CHR(10) + ' "Name" : "Meier",' + ' "Vorname" : "Manfred", ' + ' "Strasse" : "Bergstrasse" ' + CHR(10) + CHR(125) + CHR(10) + CHR(125) . */ xx = CODEPAGE-CONVERT(xx, "UTF-8":U). /* OUTPUT TO 'C:\TEMP\jsonfile.json'. PUT CONTROL STRING(xx). OUTPUT CLOSE. */ MESSAGE STRING(xx) VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. oParser = NEW ObjectModelParser(). oJsonObject = CAST(oParser:Parse(xx), JsonObject). oJsonObject:write(yy, TRUE). MESSAGE '1' STRING(yy) VIEW-AS ALERT-BOX. oJsonInput = NEW JsonObject(). oJsonInput:GetJsonObject('ttInput'). MESSAGE '2' STRING(yy) VIEW-AS ALERT-BOX. oJsonKunde:GetJsonObject('ttKunde'). MESSAGE '3' VIEW-AS ALERT-BOX. oJsonInput:write(yy, TRUE). MESSAGE STRING(yy) VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. DEF TEMP-TABLE ttInput FIELD benutzer AS CHAR FIELD Sprache AS CHAR FIELD Programm AS CHAR . DEF TEMP-TABLE ttKunde FIELD benutzer AS CHAR SERIALIZE-HIDDEN FIELD NAME AS CHAR FIELD Vorname AS CHAR FIELD Programm AS CHAR . DEFINE DATASET hDset FOR ttInput , ttKunde DATA-RELATION dsrel1 FOR ttInput, ttKunde RELATION-FIELDS(benutzer,benutzer) NESTED . /* CREATE ttInput. CREATE ttKunde. lRetVal = dataset hDset:READ-JSON("jsonObject", ojsonObject). MESSAGE lRetVal VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. */ DEF VAR httInput AS HANDLE NO-UNDO. DEF VAR httKunde AS HANDLE NO-UNDO. httInput = TEMP-TABLE ttInput:DEFAULT-BUFFER-HANDLE. httKunde = TEMP-TABLE ttKunde:DEFAULT-BUFFER-HANDLE. MESSAGE '2' VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. httInput:READ-JSON('jsonObject', oJsonObject, 'empty'). MESSAGE '3' VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. httKunde:READ-JSON('jsonObject', oJsonObject, 'empty'). MESSAGE '4' VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. FIND FIRST ttInput. DISPLAY ttInput. DISPLAY 'kunde' SKIP. FIND FIRST ttKunde. DISPLAY ttKunde.