|
1
|
|
|
2
|
USING Progress.Lang.*.
|
|
3
|
USING Progress.Json.ObjectModel.*.
|
|
4
|
define var jObj as JsonObject.
|
|
5
|
define var jObj2 as JsonObject.
|
|
6
|
define var jObj3 as JsonObject.
|
|
7
|
|
|
8
|
define var jArr as JsonArray.
|
|
9
|
|
|
10
|
DEFINE TEMP-TABLE ttParent NO-UNDO SERIALIZE-NAME "Parent"
|
|
11
|
FIELD parentField AS CHARACTER.
|
|
12
|
|
|
13
|
DEFINE TEMP-TABLE ttChild1 NO-UNDO
|
|
14
|
FIELD id AS RECID
|
|
15
|
FIELD childField AS CHARACTER .
|
|
16
|
|
|
17
|
DEFINE TEMP-TABLE ttChild2 NO-UNDO
|
|
18
|
FIELD id AS RECID
|
|
19
|
FIELD childField AS CHARACTER .
|
|
20
|
|
|
21
|
DEFINE DATASET dsDataset serialize-hidden FOR ttParent, ttChild1, ttChild2
|
|
22
|
PARENT-ID-RELATION pir1 FOR ttPArent, ttChild1 PARENT-ID-FIELD ttChild1.id
|
|
23
|
PARENT-ID-RELATION pir2 FOR ttPArent, ttChild2 PARENT-ID-FIELD ttChild2.id.
|
|
24
|
|
|
25
|
jObj = new JsonObject().
|
|
26
|
jObj:add("parentField", '111').
|
|
27
|
|
|
28
|
|
|
29
|
jObj2 = new JsonObject().
|
|
30
|
jObj2:add("Parent", jObj).
|
|
31
|
|
|
32
|
jArr = new JsonArray().
|
|
33
|
jArr:add(jObj2).
|
|
34
|
|
|
35
|
jObj3 = new JsonObject().
|
|
36
|
jObj3:add("Parent", jArr).
|
|
37
|
dataset dsDataset:READ-JSON("JsonObject",jObj3).
|
|
38
|
message 'done'.
|
|
39
|
/* */
|
|
40
|
/*output to test.json. */
|
|
41
|
/* */
|
|
42
|
/*dataset dsDataset:WRITE-JSON("JsonObject",jObj).*/
|
|
43
|
/*jArr:add(jObj). */
|
|
44
|
/*jObj2:Add("Parent", jArr). */
|
|
45
|
/*message 'before ' string(jObj2:GetJsonText()). */
|
|
46
|
/* */
|
|
47
|
/*for each ttParent: */
|
|
48
|
/*delete ttParent. */
|
|
49
|
/*end. */
|
|
50
|
/* */
|
|
51
|
/*for each ttChild1: */
|
|
52
|
/*delete ttChild1. */
|
|
53
|
/*end. */
|
|
54
|
/* */
|
|
55
|
/*for each ttChild2: */
|
|
56
|
/*delete ttChild2. */
|
|
57
|
/*end. */
|
|
58
|
/* */
|
|
59
|
/*dataset dsDataset:READ-JSON("JsonObject",jObj2).*/
|
|
60
|
/*jObj = new JsonObject(). */
|
|
61
|
/* */
|
|
62
|
/*dataset dsDataset:WRITE-JSON("JsonObject",jObj).*/
|
|
63
|
/*message 'after ' string(jObj:GetJsonText()). */
|
|
64
|
/*output close. */
|