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

如何在Lua中获取JSON嵌套字段data.numTracking与urlTracking的值

如何从JSON嵌套字段中获取值?

你当前的问题是无法获取嵌套在data字段下的numTracking和urlTracking,核心原因是代码里直接通过item[tag2]从顶层对象查找,但这些字段属于item.data这个子对象,并非顶层属性。

修改后的代码

value1 = "000545671"
tag1 = "merchantReference"
tag2 = "numTracking"

function getData(jsonFile, tag1, value1, tag2)
    local file = io.open(jsonFile, "r")
    local content = file:read("*all")
    file:close()
    local data = json.decode(content)
    
    local tracking = nil
    for i, item in ipairs(data) do
        if item[tag1] == value1 then
            -- 先确认data字段存在,再从子对象中取目标值
            if item.data then
                tracking = item.data[tag2]
                -- 找到匹配项后提前退出循环,提升效率
                break
            end
        end
    end
    return tracking
end

关键说明

  • 路径修正:必须先访问item.data子对象,再从中获取numTracking或urlTracking,也就是用item.data[tag2]替代原代码的item[tag2]
  • 空值防护:增加item.data的存在判断,避免因JSON结构异常导致运行报错
  • 优化循环:找到匹配条目后用break终止遍历,无需处理剩余数据

如果要获取urlTracking,只需将tag2的值改为"urlTracking"即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:57:28