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

如何在Lua中向JSON解码后的数据添加新值

如何在Lua中合并两个解码后的JSON表

嘿,我明白你的问题了!你尝试用arr_stock = arr_stock , result来合并两个Lua表,但这种方式在Lua里完全行不通——因为逗号在这里只是用来分隔多个返回值,并不会帮你把两个表的内容合并到一起。

正确的合并方法

因为你要合并的是两个简单的键值对表(没有嵌套结构),最直接的方式就是遍历要插入的表的所有键值对,逐个添加到目标表中。这里给你写一个简单的实现:

-- 假设你已经完成了解码步骤
local data = '{"one":44,"two":18}'
local arr_stock = json.decode(data)
local result = {"three":5} -- 或者如果是JSON字符串的话,用json.decode('{"three":5}')

-- 定义一个合并函数,把source表的内容合并到target表
local function merge_tables(target, source)
    for key, value in pairs(source) do
        target[key] = value
    end
    return target
end

-- 执行合并操作
merge_tables(arr_stock, result)

-- 现在验证一下结果,arr_stock已经包含新的键值对了
print(json.encode(arr_stock)) -- 输出应该是 {"one":44,"two":18,"three":5}

为什么你的原方法无效?

在Lua中,arr_stock = arr_stock , result这种写法其实是多值赋值,但Lua只会把逗号分隔的第一个值赋给变量arr_stock,第二个值会被直接丢弃。所以这种方式根本不会改变原表的内容,自然也就看不到新插入的数据啦。

如果你的表存在嵌套结构(比如某个键对应的值又是一个表),那你需要写一个递归的合并函数来处理深层的内容,但从你的问题描述来看,当前的简单合并逻辑完全够用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:07:31