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

PROGRESS 4GL:如何读取JSON文件并将其存储到临时表中?

PROGRESS 4GL解析JSON并存储到临时表实现

步骤1:创建对应结构的临时表

先定义匹配JSON字段的临时表,用于存储解析后的数据:

DEFINE TEMP-TABLE tt_DocumentData
    FIELD sdion AS CHARACTER
    FIELD Count AS INTEGER
    FIELD ddoid AS CHARACTER
    FIELD submiss AS CHARACTER
    INDEX idx_ddoid IS PRIMARY UNIQUE ddoid.

步骤2:编写JSON解析与存储代码

以下是完整的解析逻辑,包含JSON读取、字段提取、临时表插入操作:

/* 定义变量 */
DEFINE VARIABLE cJsonData AS CHARACTER NO-UNDO.
DEFINE VARIABLE hJsonObj AS HANDLE NO-UNDO.
DEFINE VARIABLE hJsonArray AS HANDLE NO-UNDO.
DEFINE VARIABLE iArrayIndex AS INTEGER NO-UNDO.
DEFINE VARIABLE cSdion AS CHARACTER NO-UNDO.
DEFINE VARIABLE iCount AS INTEGER NO-UNDO.

/* 加载JSON内容(实际场景可替换为从文件读取:cJsonData = FILE-INFO:FILE-CONTENTS WHERE FILE-INFO:FILE-NAME = "你的JSON文件路径") */
cJsonData = '{
"sdion": "VSSDG",
"Count": 1,
"documentSummary": [
    {
        "ddoid": "SSFG11GFG",
        "submiss": "SSFG11GFG"
    }
]
}'.

/* 解析JSON为对象 */
CREATE JSON-OBJECT hJsonObj.
hJsonObj:READ-JSON("STRING", cJsonData).

/* 提取顶层字段值 */
cSdion = hJsonObj:GET-VALUE("sdion").
iCount = hJsonObj:GET-VALUE("Count").

/* 遍历documentSummary数组 */
hJsonArray = hJsonObj:GET-VALUE("documentSummary").
DO iArrayIndex = 1 TO hJsonArray:NUM-ENTRIES():
    DEFINE VARIABLE hDocObj AS HANDLE NO-UNDO.
    hDocObj = hJsonArray:GET-ENTRY(iArrayIndex).

    /* 插入数据到临时表 */
    CREATE tt_DocumentData.
    ASSIGN
        tt_DocumentData.sdion = cSdion
        tt_DocumentData.Count = iCount
        tt_DocumentData.ddoid = hDocObj:GET-VALUE("ddoid")
        tt_DocumentData.submiss = hDocObj:GET-VALUE("submiss").

    DELETE OBJECT hDocObj.
END.

/* 清理JSON句柄,释放内存 */
DELETE OBJECT hJsonArray.
DELETE OBJECT hJsonObj.

/* 验证临时表数据 */
FOR EACH tt_DocumentData:
    DISPLAY tt_DocumentData.
END.

关键要点

  • 临时表设计:整合JSON顶层字段与数组内的字段,适配单个数组元素关联顶层数据的场景。
  • JSON句柄操作:使用PROGRESS内置的JSON-OBJECT和JSON-ARRAY句柄处理JSON结构,使用完毕必须删除句柄避免内存泄漏。
  • 数组遍历:通过NUM-ENTRIES()获取数组长度,循环提取每个数组元素的子字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:16