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

Lua使用dkjson获取JSON数组属性返回nil的解决方法

问题原因
  • 传入json.decode的参数类型不符合要求。dkjson的decode方法仅接受合法JSON格式的字符串作为入参,你当前代码里的obj是语法错误的Lua表结构,既不符合Lua语法规范也不是JSON字符串,需要先把JSON整体内容用引号包裹声明为字符串类型。
  • 取值逻辑不符合JSON结构规则。你给出的JSON中dogs字段对应的值是数组类型,解析到Lua中会转为索引从1开始的有序表,不能直接通过dogs.photo读取属性,需要先指定数组的索引位置,才能读取对应下标元素的photo属性。
正确实现代码
local json = require ("dkjson")
-- 将JSON内容包裹为字符串类型
local json_str = '{"dogs":[{"photo":"http://example.com/1.jpg","price":20}]}'
local obj_t = json.decode(json_str)
-- 先取dogs数组的第一个元素,再读取其photo属性
local photo = obj_t.dogs[1].photo
print(photo) -- 输出结果为 http://example.com/1.jpg

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:18:03