【问题标题】:DFHJS2LS - generating Json structure from cobol copybookDFHJS2LS - 从 cobol copybook 生成 Json 结构
【发布时间】:2022-09-28 01:48:05
【问题描述】:

我在 COBOL 中有我的输出结构 - 我尝试通过 DFHJS2LS - IBM 工具从中生成 JSON 结构。所有字段都更改为必需的 - 这在 .Net 中生成类时会带来麻烦,因为所有字段都不存在。

问题:如何以及在何处(在 COBOL 或 DFHJS2LS 中)将字段定义为可选,以便正确生成它们以避免空指针异常。

  • 你不能直接在 COBOL 中使用JSON GENERATE 吗?
  • 问题是 Json 中的所有字段都是必需的 - 然后我在从 Json 生成类时遇到问题。 DFHJS2LS 是否可以跳过字段上所需的属性。我只希望字段是可选的
  • ? ...是否所有字段都是必需的(=必须指定,即使为空)还是可选的(如果为空则应省略)?
  • @Simon 这些字段是根据需要生成的,它们不会。那就是问题所在。

标签: json cobol cics copybook


【解决方案1】:

根据documentation,您可以使用...定义您的 COBOL 数据项

data description OCCURS n TIMES

...并使用 4.1 或更高级别的映射并指定 TRUNCATE-NULL-ARRAYS = ENABLED。有一个对“结构化数组”的引用,我认为这意味着您需要执行类似...

05  Something Occurs 1 Times.
    10  Something-Real PIC X(8).

......所以你得到......

"type":"array"
"maxItems":1
"minItems":0
"items":{ ... }

您还可以指定映射级别 4.0 或更高级别并使用...

data description OCCURS n TO m TIMES DEPENDING ON t

……获得……

   "field-name":{
               "type":"array",
               "maxItems":m
               "minItems":n
               "items":{ ... }
              }`

映射级别由...指定

//INPUT.SYSUT1 DD *
[...other control statements...]
MAPPING-LEVEL=4.3
[...other control statements...]

【讨论】:

  • 您好 cschneid 感谢您的回答 - 实际上我在 cobol 中有一个数组,映射是 4.3(?) - 我被告知。但仍然根据需要获取所有字段。我使用 Jcl 来生成 Json。我怎么能确定它是 4.3 版本 - 应该把它放在 JCL 中吗?
  • @RemyFale 指定 MAPPING-LEVEL=4.3 作为 INPUT.SYSUT1 DD 的控制语句之一。
  • 你的意思是像 - 抱歉我没有那么有经验://* //INPUT.SYSUT1 DD MAPPING-LEVEL=4.3 但我收到错误 - 当我这样写时
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
相关资源
最近更新 更多