COBOL 到 JSON 模式映射
DFHLS2JS 实用程序支持 COBOL 数据结构与JSON模式定义之间的映射。
COBOL 名称如何转换为JSON
COBOL 名称按照以下规则转换为 JSON 名称:
- 将通过添加一个或多个数字位来使重复的名称唯一。
例如,两个
year实例将变为year和year1。 - 连字符替换为下划线。 连续连字符的字符串替换为连续的下划线。
例如,
current-user--id变为current_user__id。 - 由连字符定界并且只包含大写字符的名称段转换为小写。
例如,
CA-REQUEST-ID变为ca_request_id。 - 向以数字字符开头的名称添加前导下划线。
例如,
9A-REQUEST-ID变为_9a_request_id。
COBOL 数据描述元素如何映射到JSON
- COBOL 未在表1中显示的数据描述元素不受 DFHLS2JS 支持。
- 不支持级别号为 66 和 77 的数据描述项。 将忽略级别号为 88 的数据描述项。
- 不支持对数据描述条目使用以下子句:
- REDEFINES
- RENAMES;即级别 66
- DATE FORMAT
- 将忽略以下针对数据描述项的子句:
- BLANK WHEN ZERO
- JUSTIFIED
- VALUE
- 支持 SIGN 子句 SIGN TRAILING。 仅当 DFHLS2JS 中指定的映射级别为 1.2 或更高时,才支持 SIGN 子句 SIGN 前导。
- 在映射级别 1.2 或更高,SIGN TRAILING 和 SIGN LEADING 子句均支持 SEPARATE CHARACTER。
- 不支持以下针对 USAGE 子句的短语:
- OBJECT REFERENCE
- POINTER
- FUNCTION-POINTER
- PROCEDURE-POINTER
- 以下针对 USAGE 子句的短语在映射级别 1.2 或更高受支持:
- COMPUTATIONAL-1
- COMPUTATIONAL-2
- DISPLAY 和 COMPUTATIONAL-5 数据描述项仅支持的 PICTURE 字符为 9、S 和 Z。
- PACKED-DECIMAL 数据描述项所支持的 PICTURE 字符为 9、S、V 和 Z。
- 已编辑的数字数据描述项仅支持的 PICTURE 字符为 9 和 Z。
- 如果 MAPPING-LEVEL 参数设置为 1.2 或更高版本,并且 CHAR-VARYING 参数设置为 NULL ,那么字符数组将映射到
string并作为以 null 结束的字符串进行处理。 - 如果 MAPPING-LEVEL 参数设置为 1.2 或更高版本,并且 CHAR-VARY 参数设置为 BINARY ,那么字符数组将映射到
string并作为二进制数据进行处理。 - 如果 MAPPING-LEVEL 参数设置为 $TAG1 1.2 $TAG2 或更高版本,并且 CHAR-VARYING 参数设置为到了折叠,那么将忽略字符串的尾部空格。
- 映射级别 4.0 或更高级别支持 OCCURS DEPENDING ON 子句. 不支持复合的 OCCURS DEPENDING ON。 这表示 OCCURS DEPENDING ON 仅受结构最后一个字段的支持。
- 任何映射级别上都支持 OCCURS INDEXED BY 子句。
| COBOL 数据描述 | JSON 模式定义 |
|---|---|
PIC X(n)PIC A(n)PIC G(n) DISPLAY-1PIC N(n) |
|
PIC S9 DISPLAYPIC S99 DISPLAYPIC S999 DISPLAYPIC S9999 DISPLAYPIC S9(n) DISPLAYPIC S9(n) COMPPIC S9(n) COMP-4PIC S9(n) COMP-5PIC S9(n) BINARY |
其中 n 是可以由“9”字符模式表示的最大值。 |
PIC 9 DISPLAYPIC 99 DISPLAYPIC 999 DISPLAYPIC 9999 DISPLAYPIC 9(n) DISPLAYPIC 9(n) COMPPIC 9(n) COMP-4PIC 9(n) COMP-5PIC 9(n) BINARY |
其中 n 是可以由“9”字符模式表示的最大值。 |
PIC S9(m)V9(n) COMP-3 |
其中: x 是可由字符“9”的模式表示的最小值。 y 是可由字符“9”的模式表示的最大值。 z 是可用的最小单位 = 1/10 n 。 |
|
其中: y 是可由字符“9”的模式表示的最大值。 z 是可用的最小单位 = 1/10 n。 |
在映射级别 3.0 上受支持 (当 |
时间戳记的格式由 RFC3339定义。 |
在映射级别 1.2 和更高受支持 |
其中: x 是可由字符“9”的模式表示的最小值。 y 是可由字符“9”的模式表示的最大值。 z 是可用的最小单位 = 1/10 n。 |
COMP-1在映射级别 1.2 和更高受支持 注: IBM® 十六进制浮点 (HFP) 数据表示与用于 JSON 的 IEEE-754-1985 表示不完全相同。 某些值可能不会精确从一个表示转换为另一个表示。
对于浮点数据类型,某些极大或极小值可能无效。 转换为 HFP 表示或从 HFP 表示转换时,某些值可能会不精确。 如果精确转换很重要,请考虑将 COMP-1 数据类型的使用替换为固定精度替代方法。 |
|
COMP-2在映射级别 1.2 和更高受支持 注: IBM 十六进制浮点 (HFP) 数据表示与用于 JSON 的 IEEE-754-1985 表示不完全相同。 某些值可能不会精确从一个表示转换为另一个表示。
对于双精度数据类型,某些极大或极小值可能无效。 转换为 HFP 表示或从 HFP 表示转换时,某些值可能会不精确。 如果精确转换很重要,请考虑将 COMP-2 数据类型的使用替换为固定精度替代方法。 |
|
数据描述 OCCURS n TIMES |
|
数据描述 OCCURS n TO m TIMES t在映射级别 4.0 上受支持 |
数组项的内容取决于使用的数据类型。 |
PIC X OCCURSn TIMESPIC A OCCURS n PIC N OCCURSPIC G DISPLAY-1 OCCURS n TIMESn TIMES |
当 CHAR-OCCURS
它是一个字符串。 当 CHAR-OCCURS
=ARRAY 时:
|
PIC X OCCURSn TO m PIC A OCCURSTIMESn TO m TIMESPIC G DISPLAY-1 OCCURS n TO m PIC N OCCURSTIMESn TO mTIMES |
当 CHAR-OCCURS
|
PIC N(n) USAGE NATIONAL当 CHAR-USAGE |
在映射级别 4.0 或更高级别上:
在运行时, CICS 会使用 UTF-16 数据填充应用程序数据结构字段。 |