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

OpenEdge JsonObject添加JsonArray:嵌套结构实现咨询

问题:将campaigns数组嵌套进data数组的对象内部

期望的JSON结构

{
    "data": [
        {
          "external_id": "AlphaNumeric",
          "external_branch_id": "AlphaNumeric",
          "name": "Super Awesome Guy",
          "cellphone": "String_int",
          "gender": "(m/f only)",
          "autosuggest": 0,
          "campaigns": [
               {
                    "name": "Super Awesome Campaign"
               }
          ]
        }
    ]
}

当前错误输出

{
  "data": [
    {
      "external_id": "97816",
      "external_branch_id": "1",
      "external_user_id": null,
      "name": "AIDE RODRIGUEZ MAR",
      "force_delete_rs": false,
      "rs": null,
      "cellphone": "1111111111",
      "telephone": "5555102609",
      "email": "lizmar056@gmail.com",
      "customer_category": null,
      "gender": "M",
      "birthday": "2001-11-09",
      "autosuggest": false,
      "force_delete_addresses": false
    }
  ],
  "campaigns": [
    {
      "name": "Bono Activo"
    }
  ]
}

错误原因

你直接把campaigns数组添加到了最外层的oJson对象中,导致它和data数组处于同级结构,而不是嵌套进data数组内的每个对象里。

正确实现代码

/* Create new JsonObjects */
oJson     = NEW JsonObject().
oDataItem = NEW JsonObject().

aJson1stTable = NEW JsonArray().
aJson2ndTable = NEW JsonArray().

// 读取data表数据到data数组
aJson1stTable:READ(TEMP-TABLE data:HANDLE).
// 读取campaigns表数据到campaigns数组
aJson2ndTable:READ(TEMP-TABLE campaigns:HANDLE).

// 遍历data数组中的每个对象,将campaigns数组嵌套进去
DO i = 1 TO aJson1stTable:LENGTH:
    oDataItem = CAST(aJson1stTable:Get(i), JsonObject).
    oDataItem:Add("campaigns", aJson2ndTable).
END.

// 将data数组添加到最外层对象
oJson:Add("data", aJson1stTable).

/* Write the JSON string to a character variable */ 
oJson:Write(jSon_string,TRUE).

关键修改说明

  1. 先读取data和campaigns的表数据到对应的数组中
  2. 遍历data数组里的每个JsonObject,把campaigns数组添加到每个对象内部
  3. 最后再把data数组添加到最外层的oJson对象中,确保层级正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:32:37