You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IBM COBOL的JSON GENERATE中抑制根元素

在IBM COBOL中移除JSON GENERATE生成的根元素

你当前的代码会生成包含根元素CBL-GROUP的JSON:

JSON GENERATE WS-JSON                                    
         FROM  CBL-GROUP      
     COUNT IN WS-JSON-LEN                                
      NAME OF  FIELD1 is "name"
               FIELD2 is "address"

生成的JSON结果:

{
  "CBL-GROUP": {
    "name": "Smith",
    "address": "New Orleans"
  }
}

要去掉根元素CBL-GROUP,可以采用以下两种有效方法:

方法一:使用WITHOUT ROOT短语(IBM Enterprise COBOL 6.2及以上版本)

如果你的COBOL版本为6.2或更高,直接在JSON GENERATE语句中添加WITHOUT ROOT即可跳过根组的包装:

JSON GENERATE WS-JSON                                    
         FROM  CBL-GROUP      
     COUNT IN WS-JSON-LEN                                
      NAME OF  FIELD1 is "name"
               FIELD2 is "address"
      WITHOUT ROOT

生成的目标JSON:

{
  "name": "Smith",
  "address": "New Orleans"
}

方法二:直接指定目标字段(兼容旧版本)

若你的COBOL版本不支持WITHOUT ROOT,可以直接指定要生成的字段而非整个组:

JSON GENERATE WS-JSON                                    
         FROM  FIELD1, FIELD2      
     COUNT IN WS-JSON-LEN                                
      NAME OF  FIELD1 is "name"
               FIELD2 is "address"

这种方式会直接将指定字段作为JSON的顶层键值对,不会生成根组元素。

注意:SUPPRESS短语用于隐藏空值字段,无法用来移除根元素,这也是你之前编译失败的原因。

内容的提问来源于stack exchange,提问作者Alexander Meins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:20:04