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

在Zoho CRM Deluge中将JSONL响应转换为集合/列表的方法

在Deluge中将JSONL格式响应转换为JSON数组的解决方法

场景说明

对接第三方API返回JSONL格式响应,Deluge内置的toCollection("\n")和toJSONList()无法处理,因为响应被识别为无换行的连续字符串,需要将其转换为标准JSON数组以支持for-each循环处理。

基础解决方案(无嵌套JSON的情况)

如果返回的JSONL中每个对象都是扁平结构(无嵌套{}),可以通过字符串替换快速处理:

// 假设api_response是API返回的JSONL字符串
api_response = '{"Key1":"Value1","Key2":"Value2"}{"Key1":"Value1","Key2":"Value2"}'

// 1. 在独立JSON对象间添加分隔逗号
processed_str = api_response.replace("}{", "},{")

// 2. 包裹成标准JSON数组格式
json_array_str = "[" + processed_str + "]"

// 3. 解析为Deluge可处理的JSON列表
json_list = toJSON(json_array_str)

// 循环处理每个对象
for each item in json_list
    info "Key1值:" + item.Key1
    info "Key2值:" + item.Key2
end for

进阶解决方案(支持嵌套JSON的情况)

如果JSONL中存在嵌套的JSON对象,基础方法会因误替换内部}{而失效,此时需要通过括号层级统计来精准拆分每个顶级JSON对象:

// 示例带嵌套的JSONL字符串
api_response = '{"Key1":"Value1","Key2":{"NestedKey":"NestedValue"}}{ "Key1":"Value1","Key2":"Value2"}'

json_list = []
current_obj = ""
bracket_count = 0

// 遍历字符串每个字符,跟踪括号层级
for each char in api_response.toCharArray()
    current_obj = current_obj + char
    if char == "{"
        bracket_count = bracket_count + 1
    elif char == "}"
        bracket_count = bracket_count - 1
        // 括号层级回到0时,说明一个完整的顶级JSON对象结束
        if bracket_count == 0
            // 解析当前对象并加入列表
            json_obj = toJSON(current_obj)
            json_list.add(json_obj)
            current_obj = ""
        end if
    end if
end for

// 循环处理,支持嵌套字段读取
for each item in json_list
    info "Key1值:" + item.Key1
    if item.Key2 is type map
        info "嵌套Key值:" + item.Key2.NestedKey
    else
        info "Key2值:" + item.Key2
    end if
end for

原理说明

  • 基础方法利用JSONL的结构特征,通过替换}{为},{快速构建数组格式,适合简单场景。
  • 进阶方法通过统计括号的嵌套层级,精准识别每个顶级JSON对象的边界,避免嵌套结构导致的拆分错误,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:20:14