
USING Progress.Lang.*.
USING Progress.Json.ObjectModel.*.
define var jObj as JsonObject.
define var jObj2 as JsonObject.
define var jObj3 as JsonObject.

define var jArr as JsonArray.

DEFINE TEMP-TABLE ttParent NO-UNDO SERIALIZE-NAME "Parent"
    FIELD parentField AS CHARACTER.

DEFINE TEMP-TABLE ttChild1 NO-UNDO
    FIELD id AS RECID 
    FIELD childField AS CHARACTER .
    
DEFINE TEMP-TABLE ttChild2 NO-UNDO
    FIELD id AS RECID 
    FIELD childField AS CHARACTER .    
    
DEFINE DATASET dsDataset serialize-hidden FOR ttParent, ttChild1, ttChild2  
    PARENT-ID-RELATION pir1 FOR ttPArent, ttChild1 PARENT-ID-FIELD ttChild1.id
    PARENT-ID-RELATION pir2 FOR ttPArent, ttChild2 PARENT-ID-FIELD ttChild2.id.
    
jObj = new JsonObject().
jObj:add("parentField", '111').


jObj2 = new JsonObject().
jObj2:add("Parent", jObj).

jArr =  new JsonArray().
jArr:add(jObj2).

jObj3 = new JsonObject().
jObj3:add("Parent", jArr).
dataset dsDataset:READ-JSON("JsonObject",jObj3).
message 'done'.
/*                                                */
/*output to test.json.                            */
/*                                                */
/*dataset dsDataset:WRITE-JSON("JsonObject",jObj).*/
/*jArr:add(jObj).                                 */
/*jObj2:Add("Parent", jArr).                      */
/*message 'before ' string(jObj2:GetJsonText()).  */
/*                                                */
/*for each ttParent:                              */
/*delete ttParent.                                */
/*end.                                            */
/*                                                */
/*for each ttChild1:                              */
/*delete ttChild1.                                */
/*end.                                            */
/*                                                */
/*for each ttChild2:                              */
/*delete ttChild2.                                */
/*end.                                            */
/*                                                */
/*dataset dsDataset:READ-JSON("JsonObject",jObj2).*/
/*jObj = new JsonObject().                        */
/*                                                */
/*dataset dsDataset:WRITE-JSON("JsonObject",jObj).*/
/*message 'after ' string(jObj:GetJsonText()).    */
/*output close.                                   */
