我正在尝试使用 COBOL 6.3 的 COBOL GENERATE 语句从下面的 Cobol 结构生成 JSON。我想根据数组中的值抑制数据元素。例如,如果值是空格,想要抑制模型值 (ws-inx1,ws-inx2)。
有人可以帮助我如何使用 JSON GENERATE 语句实现此目的吗?
如果 JSON GENERATE 无法实现,我们是否可以在 COBOL-CICS 程序中生成 JSON。我已经检查了 CICS JSON 辅助的可能性,但看不到任何抑制选项。
01 payload
03 reference-id pic x(10).
03 model-specific-data occurs 5 times indexed by ws-inx1.
05 model-id pic x(10).
05 model-values occurs 5 times indexed by ws-inx2.
10 model-attrib-name pic x(01).
10 model-value pic x(3).
10 model-value-boolean pic x(05).
88 true-val value 'true'.
88 false-val value 'false'
需要示例 JSON
{
"payload": {
"reference-id": "abc123",
"model-specific-data": [
{
"model-id": "model 01",
"model-value-attribs": [
{
"model-attrib-name": "a",
"model-value": "A01",
"model-value-boolean": true
},
{
"model-attrib-name": "b",
"model-value": "123",
"model-value-boolean": false
},
{
"model-attrib-name": "x",
"model-value-boolean": false
}
]
},
{
"model-id": "model 02",
"model-value-attribs": [
{
"model-attrib-name": "c",
"model-value": "C01",
"model-value-boolean": true
},
{
"model-attrib-name": "d",
"model-value": "D01",
"model-value-boolean": false
}
]
}
]
}
}
(重新)将数组定义为 5 个基本数据项,并在 JSON GENERATE 语句中使用 SUPPRESS。