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

Lua加载json模块报错求助:安装luajson后运行代码出现版本调用错误

问题原因与解决办法

这个错误是因为你安装的luajson 1.3.4版本过于老旧,不兼容Debian 12默认的Lua 5.4版本。luajson 1.3.4的代码中错误地将Lua内置的_VERSION(字符串类型,比如"Lua 5.4")当作函数调用,导致出现attempt to call field 'version' (a string value)的报错。

解决方式

方式一:换用兼容高版本Lua的JSON库(推荐)

dkjson是轻量且兼容Lua 5.1到5.4的JSON库,安装和使用都很简单:

  1. 安装dkjson:
luarocks install dkjson
  1. 修改测试代码test.lua:
local json = require("dkjson")
print("hello")

方式二:修改luajson的代码(不推荐)

如果坚持使用luajson,可以手动修改报错文件/usr/local/share/lua/5.1/json/decode/util.lua第97行:
找到类似以下的代码:

local v = _VERSION()

替换为解析版本字符串的代码:

local v = _VERSION:match("Lua (%d+%.%d+)")

这种方式需要修改系统安装的库文件,后续更新luajson时会被覆盖,因此不推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:22:09